or run

npx @tessl/cli init
Log in

Version

Tile

Overview

Evals

Files

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

0

# Azure Subscription Management Client Library

1

2

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.

3

4

## Package Information

5

6

- **Package Name**: azure-mgmt-subscription

7

- **Package Type**: Azure Management SDK

8

- **Language**: Python

9

- **Installation**: `pip install azure-mgmt-subscription`

10

11

## Core Imports

12

13

```python

14

from azure.mgmt.subscription import SubscriptionClient

15

```

16

17

For asynchronous operations:

18

19

```python

20

from azure.mgmt.subscription.aio import SubscriptionClient

21

```

22

23

Import specific models and enums as needed:

24

25

```python

26

from azure.mgmt.subscription.models import (

27

Subscription,

28

SubscriptionName,

29

AcceptOwnershipRequest,

30

PutAliasRequest,

31

SubscriptionState,

32

Workload

33

)

34

```

35

36

## Basic Usage

37

38

```python

39

from azure.identity import DefaultAzureCredential

40

from azure.mgmt.subscription import SubscriptionClient

41

42

# Create credential and client

43

credential = DefaultAzureCredential()

44

client = SubscriptionClient(credential)

45

46

# List all accessible subscriptions

47

subscriptions = list(client.subscriptions.list())

48

for subscription in subscriptions:

49

print(f"Subscription: {subscription.display_name} ({subscription.subscription_id})")

50

51

# Get details about a specific subscription

52

subscription_id = "your-subscription-id"

53

subscription = client.subscriptions.get(subscription_id)

54

print(f"State: {subscription.state}")

55

print(f"Location: {subscription.subscription_policies.location_placement_id}")

56

57

# List available regions for a subscription

58

locations = list(client.subscriptions.list_locations(subscription_id))

59

for location in locations:

60

print(f"Region: {location.name} - {location.display_name}")

61

62

# Always close the client when done

63

client.close()

64

```

65

66

## Architecture

67

68

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

69

70

- **SubscriptionClient**: Main client class providing access to all operations

71

- **Operations Groups**: Specialized handlers for subscriptions, tenants, aliases, policies, and billing

72

- **Models**: Rich data structures representing Azure subscription resources

73

- **Authentication**: Integration with Azure Identity for secure API access

74

- **Async Support**: Complete async/await support for non-blocking operations

75

76

## Capabilities

77

78

### Subscription Management

79

80

Core subscription operations including listing, retrieving details, and managing subscription lifecycle (cancel, rename, enable). These operations form the foundation of subscription management workflows.

81

82

```python { .api }

83

# List all subscriptions

84

def list(**kwargs) -> Iterable[Subscription]: ...

85

86

# Get subscription details

87

def get(subscription_id: str, **kwargs) -> Subscription: ...

88

89

# List available locations for a subscription

90

def list_locations(subscription_id: str, **kwargs) -> Iterable[Location]: ...

91

```

92

93

[Subscription Management](./subscription-management.md)

94

95

### Tenant Operations

96

97

Tenant discovery and management operations that allow applications to identify and work with Azure Active Directory tenants accessible to the authenticated user.

98

99

```python { .api }

100

# List accessible tenants

101

def list(**kwargs) -> Iterable[TenantIdDescription]: ...

102

```

103

104

[Tenant Operations](./tenant-operations.md)

105

106

### Subscription Lifecycle

107

108

Individual subscription lifecycle management including cancellation, renaming, enabling, and ownership transfer operations with support for long-running operations.

109

110

```python { .api }

111

# Cancel a subscription

112

def cancel(subscription_id: str, **kwargs) -> CanceledSubscriptionId: ...

113

114

# Rename a subscription

115

def rename(subscription_id: str, body: Union[SubscriptionName, IO], **kwargs) -> RenamedSubscriptionId: ...

116

117

# Enable a disabled subscription

118

def enable(subscription_id: str, **kwargs) -> EnabledSubscriptionId: ...

119

120

# Accept ownership transfer (Long Running Operation)

121

def begin_accept_ownership(subscription_id: str, body: Union[AcceptOwnershipRequest, IO], **kwargs) -> LROPoller[None]: ...

122

```

123

124

[Subscription Lifecycle](./subscription-lifecycle.md)

125

126

### Subscription Creation via Aliases

127

128

Subscription creation and alias management operations that enable programmatic subscription provisioning through Azure's alias system with long-running operation support.

129

130

```python { .api }

131

# Create subscription via alias (Long Running Operation)

132

def begin_create(alias_name: str, body: Union[PutAliasRequest, IO], **kwargs) -> LROPoller[SubscriptionAliasResponse]: ...

133

134

# Get alias information

135

def get(alias_name: str, **kwargs) -> SubscriptionAliasResponse: ...

136

137

# Delete an alias

138

def delete(alias_name: str, **kwargs) -> None: ...

139

140

# List all aliases

141

def list(**kwargs) -> SubscriptionAliasListResult: ...

142

```

143

144

[Subscription Creation](./subscription-creation.md)

145

146

### Policy Management

147

148

Subscription policy management at tenant and billing account levels, including policy creation, updates, and retrieval for governance and compliance scenarios.

149

150

```python { .api }

151

# Add or update tenant policy

152

def add_update_policy_for_tenant(body: Union[PutTenantPolicyRequestProperties, IO], **kwargs) -> GetTenantPolicyResponse: ...

153

154

# Get tenant policy

155

def get_policy_for_tenant(**kwargs) -> GetTenantPolicyResponse: ...

156

157

# Get billing account policy

158

def get_policy(billing_account_id: str, **kwargs) -> BillingAccountPoliciesResponse: ...

159

```

160

161

[Policy Management](./policy-management.md)

162

163

### Service Operations

164

165

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

166

167

```python { .api }

168

# List available API operations

169

def list(**kwargs) -> Iterable[Operation]: ...

170

```

171

172

[Service Operations](./service-operations.md)

173

174

## Error Handling

175

176

All operations can raise Azure-specific exceptions with structured error information:

177

178

```python

179

from azure.core.exceptions import HttpResponseError

180

181

try:

182

subscription = client.subscriptions.get("invalid-subscription-id")

183

except HttpResponseError as e:

184

print(f"Error: {e.status_code} - {e.message}")

185

```

186

187

## Authentication

188

189

The client requires Azure credentials for authentication. Use Azure Identity library for best practices:

190

191

```python

192

from azure.identity import DefaultAzureCredential, ClientSecretCredential

193

194

# Recommended: Use DefaultAzureCredential

195

credential = DefaultAzureCredential()

196

197

# Or use specific credential types

198

credential = ClientSecretCredential(

199

tenant_id="your-tenant-id",

200

client_id="your-client-id",

201

client_secret="your-client-secret"

202

)

203

204

client = SubscriptionClient(credential)

205

```

206

207

## Async Support

208

209

Complete async support is available for non-blocking operations:

210

211

```python

212

import asyncio

213

from azure.identity.aio import DefaultAzureCredential

214

from azure.mgmt.subscription.aio import SubscriptionClient

215

216

async def list_subscriptions():

217

credential = DefaultAzureCredential()

218

async with SubscriptionClient(credential) as client:

219

subscriptions = []

220

async for subscription in client.subscriptions.list():

221

subscriptions.append(subscription)

222

return subscriptions

223

224

# Run async operation

225

subscriptions = asyncio.run(list_subscriptions())

226

```

227

228

## Core Types

229

230

```python { .api }

231

class SubscriptionClient:

232

"""The main subscription client."""

233

def __init__(self, credential: TokenCredential, base_url: str = "https://management.azure.com", **kwargs): ...

234

def close(self) -> None: ...

235

def __enter__(self): ...

236

def __exit__(self, *exc_details): ...

237

238

class Subscription:

239

"""Azure subscription information."""

240

id: str # The fully qualified ID for the subscription

241

subscription_id: str # The subscription ID

242

display_name: str # The subscription display name

243

state: Union[str, SubscriptionState] # Current subscription state

244

subscription_policies: SubscriptionPolicies # Associated policies

245

authorization_source: str # Authorization method used

246

247

class Location:

248

"""Azure geographic location."""

249

id: str # The fully qualified ID of the location

250

subscription_id: str # The subscription ID

251

name: str # The location name

252

display_name: str # The display name of the location

253

latitude: str # The latitude of the location

254

longitude: str # The longitude of the location

255

256

class TenantIdDescription:

257

"""Azure Active Directory tenant information."""

258

id: str

259

tenant_id: str

260

tenant_category: str

261

display_name: str

262

default_domain: str

263

```