Microsoft Azure RDBMS Management Client Library for Python providing management capabilities for MySQL, MariaDB, and PostgreSQL databases
—
Quality
Pending
Does it follow best practices?
Impact
Pending
No eval scenarios have been run
Complete management capabilities for PostgreSQL single server deployments on Azure. This service provides server lifecycle management, database operations, security configuration, and administrative features for PostgreSQL instances.
Main client for PostgreSQL single server operations with comprehensive resource management capabilities.
class PostgreSQLManagementClient:
"""
PostgreSQL management client for single server deployments.
Parameters:
- credential: TokenCredential for Azure authentication
- subscription_id: str, Azure subscription ID
- base_url: str, management endpoint (default: https://management.azure.com)
- polling_interval: int, LRO polling interval in seconds
Attributes:
- servers: Server lifecycle operations
- databases: Database management operations
- firewall_rules: Firewall configuration operations
- configurations: Server parameter operations
- replicas: Read replica operations
- server_administrators: Azure AD administrator management
- server_keys: Customer-managed encryption keys
"""
def __init__(
self,
credential,
subscription_id: str,
base_url: str = "https://management.azure.com",
**kwargs
): ...
def close(self): ...
def __enter__(self): ...
def __exit__(self, *exc_details): ...Core server lifecycle management including creation, updates, deletion, restart, and upgrade operations.
class ServersOperations:
"""Server lifecycle and management operations."""
def create(self, resource_group_name: str, server_name: str, parameters, **kwargs):
"""
Creates a new PostgreSQL server.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name (must be globally unique)
- parameters: Server creation parameters
Returns:
LROPoller for server creation operation
"""
def update(self, resource_group_name: str, server_name: str, parameters, **kwargs):
"""
Updates an existing PostgreSQL server.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- parameters: Server update parameters
Returns:
LROPoller for server update operation
"""
def delete(self, resource_group_name: str, server_name: str, **kwargs):
"""
Deletes a PostgreSQL server.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
Returns:
LROPoller for server deletion operation
"""
def get(self, resource_group_name: str, server_name: str, **kwargs):
"""
Gets details of a PostgreSQL server.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
Returns:
Server object with current properties
"""
def list(self, **kwargs):
"""
Lists all PostgreSQL servers in the subscription.
Returns:
Paged collection of Server objects
"""
def list_by_resource_group(self, resource_group_name: str, **kwargs):
"""
Lists PostgreSQL servers in a resource group.
Parameters:
- resource_group_name: str, resource group name
Returns:
Paged collection of Server objects
"""
def restart(self, resource_group_name: str, server_name: str, **kwargs):
"""
Restarts a PostgreSQL server.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
Returns:
LROPoller for restart operation
"""Database management within PostgreSQL servers including creation, deletion, and property queries.
class DatabasesOperations:
"""Database management operations within PostgreSQL servers."""
def create_or_update(self, resource_group_name: str, server_name: str, database_name: str, parameters, **kwargs):
"""
Creates or updates a database.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- database_name: str, database name
- parameters: Database parameters (charset, collation)
Returns:
LROPoller for database operation
"""
def delete(self, resource_group_name: str, server_name: str, database_name: str, **kwargs):
"""
Deletes a database.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- database_name: str, database name
Returns:
LROPoller for deletion operation
"""
def get(self, resource_group_name: str, server_name: str, database_name: str, **kwargs):
"""
Gets database properties.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- database_name: str, database name
Returns:
Database object with properties
"""
def list_by_server(self, resource_group_name: str, server_name: str, **kwargs):
"""
Lists databases in a PostgreSQL server.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
Returns:
Paged collection of Database objects
"""IP-based access control configuration for PostgreSQL servers.
class FirewallRulesOperations:
"""Firewall rule management for PostgreSQL servers."""
def create_or_update(self, resource_group_name: str, server_name: str, firewall_rule_name: str, parameters, **kwargs):
"""
Creates or updates a firewall rule.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- firewall_rule_name: str, firewall rule name
- parameters: Firewall rule parameters (start_ip_address, end_ip_address)
Returns:
LROPoller for firewall rule operation
"""
def delete(self, resource_group_name: str, server_name: str, firewall_rule_name: str, **kwargs):
"""
Deletes a firewall rule.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- firewall_rule_name: str, firewall rule name
Returns:
LROPoller for deletion operation
"""
def get(self, resource_group_name: str, server_name: str, firewall_rule_name: str, **kwargs):
"""
Gets a firewall rule.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- firewall_rule_name: str, firewall rule name
Returns:
FirewallRule object
"""
def list_by_server(self, resource_group_name: str, server_name: str, **kwargs):
"""
Lists firewall rules for a PostgreSQL server.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
Returns:
Paged collection of FirewallRule objects
"""Server parameter and configuration management for PostgreSQL instances.
class ConfigurationsOperations:
"""PostgreSQL server configuration and parameter management."""
def create_or_update(self, resource_group_name: str, server_name: str, configuration_name: str, parameters, **kwargs):
"""
Updates a configuration parameter.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- configuration_name: str, parameter name
- parameters: Configuration value and properties
Returns:
LROPoller for configuration update
"""
def get(self, resource_group_name: str, server_name: str, configuration_name: str, **kwargs):
"""
Gets a configuration parameter value.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- configuration_name: str, parameter name
Returns:
Configuration object with current value
"""
def list_by_server(self, resource_group_name: str, server_name: str, **kwargs):
"""
Lists all configuration parameters for a server.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
Returns:
Paged collection of Configuration objects
"""Advanced security and administrative features for PostgreSQL servers.
class ServerAdministratorsOperations:
"""Azure Active Directory administrator management."""
def create_or_update(self, resource_group_name: str, server_name: str, properties, **kwargs):
"""
Creates or updates an Azure AD administrator.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- properties: Administrator properties (login, sid, tenant_id)
Returns:
LROPoller for administrator operation
"""
def delete(self, resource_group_name: str, server_name: str, **kwargs):
"""
Removes the Azure AD administrator.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
Returns:
LROPoller for deletion operation
"""
def get(self, resource_group_name: str, server_name: str, **kwargs):
"""
Gets the Azure AD administrator.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
Returns:
ServerAdministratorResource object
"""
def list(self, resource_group_name: str, server_name: str, **kwargs):
"""
Lists Azure AD administrators for a server.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
Returns:
Paged collection of ServerAdministratorResource objects
"""
class ServerKeysOperations:
"""Customer-managed encryption key operations."""
def create_or_update(self, resource_group_name: str, server_name: str, key_name: str, parameters, **kwargs):
"""
Creates or updates a server key for data encryption.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- key_name: str, key name
- parameters: Key parameters (server_key_type, uri)
Returns:
LROPoller for key operation
"""
def delete(self, resource_group_name: str, server_name: str, key_name: str, **kwargs):
"""
Deletes a server key.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- key_name: str, key name
Returns:
LROPoller for deletion operation
"""
def get(self, resource_group_name: str, server_name: str, key_name: str, **kwargs):
"""
Gets a server key.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
- key_name: str, key name
Returns:
ServerKey object
"""
def list(self, resource_group_name: str, server_name: str, **kwargs):
"""
Lists server keys for a PostgreSQL server.
Parameters:
- resource_group_name: str, resource group name
- server_name: str, server name
Returns:
Paged collection of ServerKey objects
"""class Server:
"""PostgreSQL server resource representation."""
id: str
name: str
type: str
location: str
tags: Dict[str, str]
administrator_login: str
version: str # PostgreSQL version (9.5, 9.6, 10, 11, 12, 13, 14)
ssl_enforcement: str # Enabled, Disabled
minimal_tls_version: str # TLS1_0, TLS1_1, TLS1_2
user_visible_state: str # Ready, Dropping, Disabled, etc.
fully_qualified_domain_name: str
earliest_restore_date: datetime
storage_profile: StorageProfile
replication_role: str # None, Master, Replica
master_server_id: str
replica_capacity: int
public_network_access: str # Enabled, Disabled
infrastructure_encryption: str # Enabled, Disabled
class Database:
"""Database within PostgreSQL server."""
id: str
name: str
type: str
charset: str
collation: str
class FirewallRule:
"""IP-based access rule for PostgreSQL server."""
id: str
name: str
type: str
start_ip_address: str
end_ip_address: str
class Configuration:
"""PostgreSQL server configuration parameter."""
id: str
name: str
type: str
value: str
description: str
default_value: str
data_type: str
allowed_values: str
source: str
class StorageProfile:
"""Storage configuration for PostgreSQL server."""
backup_retention_days: int
geo_redundant_backup: str # Enabled, Disabled
storage_mb: int
storage_autogrow: str # Enabled, Disabled
class ServerAdministratorResource:
"""Azure AD administrator for PostgreSQL server."""
id: str
name: str
type: str
administrator_type: str # ActiveDirectory
login: str
sid: str
tenant_id: str
class ServerKey:
"""Customer-managed encryption key for PostgreSQL server."""
id: str
name: str
type: str
kind: str
server_key_type: str # AzureKeyVault
uri: str
creation_date: datetimefrom azure.identity import DefaultAzureCredential
from azure.mgmt.rdbms.postgresql import PostgreSQLManagementClient
from azure.mgmt.rdbms.postgresql.models import ServerForCreate, ServerPropertiesForDefaultCreate, StorageProfile
credential = DefaultAzureCredential()
client = PostgreSQLManagementClient(credential, "subscription-id")
# Define server parameters
server_creation_parameters = ServerForCreate(
properties=ServerPropertiesForDefaultCreate(
administrator_login="myadmin",
administrator_login_password="SecurePassword123!",
version="13",
ssl_enforcement="Enabled",
minimal_tls_version="TLS1_2",
storage_profile=StorageProfile(
backup_retention_days=7,
geo_redundant_backup="Disabled",
storage_mb=5120,
storage_autogrow="Enabled"
)
),
location="East US",
tags={"environment": "production"}
)
# Create server (async operation)
server_operation = client.servers.begin_create(
"my-resource-group",
"my-postgresql-server",
server_creation_parameters
)
server = server_operation.result() # Wait for completion
print(f"Server created: {server.name}")# Create a database
database_params = {"charset": "UTF8", "collation": "en_US.utf8"}
db_operation = client.databases.begin_create_or_update(
"my-resource-group",
"my-postgresql-server",
"my-application-db",
database_params
)
database = db_operation.result()
# Add firewall rule for application servers
firewall_params = {
"start_ip_address": "203.0.113.0",
"end_ip_address": "203.0.113.255"
}
fw_operation = client.firewall_rules.begin_create_or_update(
"my-resource-group",
"my-postgresql-server",
"app-servers",
firewall_params
)
firewall_rule = fw_operation.result()
# Configure Azure AD administrator
admin_params = {
"administrator_type": "ActiveDirectory",
"login": "admin@company.com",
"sid": "00000000-0000-0000-0000-000000000000",
"tenant_id": "11111111-1111-1111-1111-111111111111"
}
admin_operation = client.server_administrators.begin_create_or_update(
"my-resource-group",
"my-postgresql-server",
admin_params
)
administrator = admin_operation.result()
# Configure server parameter
config_params = {"value": "on"}
config_operation = client.configurations.begin_create_or_update(
"my-resource-group",
"my-postgresql-server",
"log_connections",
config_params
)
configuration = config_operation.result()Install with Tessl CLI
npx tessl i tessl/pypi-azure-mgmt-rdbms