CtrlK
BlogDocsLog inGet started
Tessl Logo

tessl/pypi-azure-mgmt-rdbms

Microsoft Azure RDBMS Management Client Library for Python providing management capabilities for MySQL, MariaDB, and PostgreSQL databases

Pending

Quality

Pending

Does it follow best practices?

Impact

Pending

No eval scenarios have been run

Overview
Eval results
Files

mariadb-single-server.mddocs/

MariaDB Single Server Management

Complete management capabilities for MariaDB single server deployments on Azure. This service provides server lifecycle management, database operations, security configuration, and administrative features for MariaDB instances.

Capabilities

Management Client

Main client for MariaDB single server operations with comprehensive resource management capabilities.

class MariaDBManagementClient:
    """
    MariaDB 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): ...

Server Operations

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 MariaDB 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 MariaDB 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 MariaDB 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 MariaDB 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 MariaDB servers in the subscription.
        
        Returns:
        Paged collection of Server objects
        """
    
    def list_by_resource_group(self, resource_group_name: str, **kwargs):
        """
        Lists MariaDB 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 MariaDB server.
        
        Parameters:
        - resource_group_name: str, resource group name
        - server_name: str, server name
        
        Returns:
        LROPoller for restart operation
        """

Database Operations

Database management within MariaDB servers including creation, deletion, and property queries.

class DatabasesOperations:
    """Database management operations within MariaDB 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 MariaDB server.
        
        Parameters:
        - resource_group_name: str, resource group name
        - server_name: str, server name
        
        Returns:
        Paged collection of Database objects
        """

Firewall Rules Operations

IP-based access control configuration for MariaDB servers.

class FirewallRulesOperations:
    """Firewall rule management for MariaDB 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 MariaDB server.
        
        Parameters:
        - resource_group_name: str, resource group name
        - server_name: str, server name
        
        Returns:
        Paged collection of FirewallRule objects
        """

Configuration Operations

Server parameter and configuration management for MariaDB instances.

class ConfigurationsOperations:
    """MariaDB 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
        """

Security and Administration Operations

Advanced security and administrative features for MariaDB 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 MariaDB server.
        
        Parameters:
        - resource_group_name: str, resource group name
        - server_name: str, server name
        
        Returns:
        Paged collection of ServerKey objects
        """

Key Models

class Server:
    """MariaDB server resource representation."""
    id: str
    name: str
    type: str
    location: str
    tags: Dict[str, str]
    administrator_login: str
    version: str  # MariaDB version (10.2, 10.3)
    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 MariaDB server."""
    id: str
    name: str
    type: str
    charset: str
    collation: str

class FirewallRule:
    """IP-based access rule for MariaDB server."""
    id: str
    name: str
    type: str
    start_ip_address: str
    end_ip_address: str

class Configuration:
    """MariaDB 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 MariaDB 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 MariaDB 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 MariaDB server."""
    id: str
    name: str
    type: str
    kind: str
    server_key_type: str  # AzureKeyVault
    uri: str
    creation_date: datetime

Usage Examples

Creating a MariaDB Server

from azure.identity import DefaultAzureCredential
from azure.mgmt.rdbms.mariadb import MariaDBManagementClient
from azure.mgmt.rdbms.mariadb.models import ServerForCreate, ServerPropertiesForDefaultCreate, StorageProfile

credential = DefaultAzureCredential()
client = MariaDBManagementClient(credential, "subscription-id")

# Define server parameters
server_creation_parameters = ServerForCreate(
    properties=ServerPropertiesForDefaultCreate(
        administrator_login="myadmin",
        administrator_login_password="SecurePassword123!",
        version="10.3",
        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-mariadb-server",
    server_creation_parameters
)
server = server_operation.result()  # Wait for completion
print(f"Server created: {server.name}")

Managing Databases and Security

# Create a database
database_params = {"charset": "utf8mb4", "collation": "utf8mb4_general_ci"}
db_operation = client.databases.begin_create_or_update(
    "my-resource-group",
    "my-mariadb-server", 
    "my-application-db",
    database_params
)
database = db_operation.result()

# Add firewall rule for web 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-mariadb-server",
    "web-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-mariadb-server",
    admin_params
)
administrator = admin_operation.result()

# Configure server parameter
config_params = {"value": "3600"}
config_operation = client.configurations.begin_create_or_update(
    "my-resource-group",
    "my-mariadb-server",
    "wait_timeout",
    config_params
)
configuration = config_operation.result()

Install with Tessl CLI

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

docs

common-models.md

index.md

mariadb-single-server.md

mysql-flexible-servers.md

mysql-single-server.md

postgresql-flexible-servers.md

postgresql-single-server.md

tile.json