[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-azure-resource-manager-mysql-dotnet":3,"mdc--s1clvy-key":42,"related-org-microsoft-azure-resource-manager-mysql-dotnet":2974,"related-repo-microsoft-azure-resource-manager-mysql-dotnet":3162},{"slug":4,"name":4,"fn":5,"description":6,"org":7,"tags":11,"stars":25,"repoUrl":26,"updatedAt":27,"license":28,"forks":29,"topics":30,"repo":37,"sourceUrl":40,"mdContent":41},"azure-resource-manager-mysql-dotnet","manage Azure MySQL Flexible Server deployments","Azure MySQL Flexible Server SDK for .NET. Database management for MySQL Flexible Server deployments. Use for creating servers, databases, firewall rules, configurations, backups, and high availability. Triggers: \"MySQL\", \"MySqlFlexibleServer\", \"MySQL Flexible Server\", \"Azure Database for MySQL\", \"MySQL database management\", \"MySQL firewall\", \"MySQL backup\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},"microsoft","Microsoft","https:\u002F\u002Fpexgzepcugksgbtrxkhf.supabase.co\u002Fstorage\u002Fv1\u002Fobject\u002Fpublic\u002Forg-logos\u002Fmicrosoft.png",[12,16,19,22],{"name":13,"slug":14,"type":15},"Azure","azure","tag",{"name":17,"slug":18,"type":15},".NET","net",{"name":20,"slug":21,"type":15},"MySQL","mysql",{"name":23,"slug":24,"type":15},"Database","database",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-05-13T06:14:25.426444","MIT",315,[31,32,14,33,34,35,36],"agent-skills","agents","foundry","mcp","sdk","skills",{"repoUrl":26,"stars":25,"forks":29,"topics":38,"description":39},[31,32,14,33,34,35,36],"Skills, MCP servers, Custom Agents, Agents.md for SDKs to ground Coding Agents","https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills\u002Ftree\u002FHEAD\u002F.github\u002Fplugins\u002Fazure-sdk-dotnet\u002Fskills\u002Fazure-resource-manager-mysql-dotnet","---\nname: azure-resource-manager-mysql-dotnet\ndescription: |\n  Azure MySQL Flexible Server SDK for .NET. Database management for MySQL Flexible Server deployments. Use for creating servers, databases, firewall rules, configurations, backups, and high availability. Triggers: \"MySQL\", \"MySqlFlexibleServer\", \"MySQL Flexible Server\", \"Azure Database for MySQL\", \"MySQL database management\", \"MySQL firewall\", \"MySQL backup\".\nlicense: MIT\nmetadata:\n  author: Microsoft\n  version: \"1.0.0\"\n  package: Azure.ResourceManager.MySql\n---\n\n# Azure.ResourceManager.MySql (.NET)\n\nAzure Resource Manager SDK for managing MySQL Flexible Server deployments.\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.MySql\ndotnet add package Azure.Identity\n```\n\n**Current Version**: v1.2.0 (GA)  \n**API Version**: 2023-12-30\n\n> **Note**: This skill focuses on MySQL Flexible Server. Single Server is deprecated and scheduled for retirement.\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=\u003Cyour-subscription-id>  # Required: Azure subscription ID\nAZURE_RESOURCE_GROUP=\u003Cyour-resource-group>  # Required: resource group name\nAZURE_MYSQL_SERVER_NAME=\u003Cyour-mysql-server>  # Required: MySQL Flexible Server name\nAZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production\n```\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.MySql;\nusing Azure.ResourceManager.MySql.FlexibleServers;\n\n\u002F\u002F Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=\u003Cspecific_credential>\nvar credential = new DefaultAzureCredential(\n    DefaultAzureCredential.DefaultEnvironmentVariableName\n);\n\u002F\u002F Or use a specific credential directly in production:\n\u002F\u002F See https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Foverview\u002Fazure\u002Fidentity-readme?view=azure-dotnet#credential-classes\n\u002F\u002F var credential = new ManagedIdentityCredential();\nArmClient client = new ArmClient(credential);\n```\n\n## Resource Hierarchy\n\n```\nSubscription\n└── ResourceGroup\n    └── MySqlFlexibleServer                 # MySQL Flexible Server instance\n        ├── MySqlFlexibleServerDatabase     # Database within the server\n        ├── MySqlFlexibleServerFirewallRule # IP firewall rules\n        ├── MySqlFlexibleServerConfiguration # Server parameters\n        ├── MySqlFlexibleServerBackup       # Backup information\n        ├── MySqlFlexibleServerMaintenanceWindow # Maintenance schedule\n        └── MySqlFlexibleServerAadAdministrator # Entra ID admin\n```\n\n## Core Workflows\n\n### 1. Create MySQL Flexible Server\n\n```csharp\nusing Azure.ResourceManager.MySql.FlexibleServers;\nusing Azure.ResourceManager.MySql.FlexibleServers.Models;\n\nResourceGroupResource resourceGroup = await client\n    .GetDefaultSubscriptionAsync()\n    .Result\n    .GetResourceGroupAsync(\"my-resource-group\");\n\nMySqlFlexibleServerCollection servers = resourceGroup.GetMySqlFlexibleServers();\n\nMySqlFlexibleServerData data = new MySqlFlexibleServerData(AzureLocation.EastUS)\n{\n    Sku = new MySqlFlexibleServerSku(\"Standard_D2ds_v4\", MySqlFlexibleServerSkuTier.GeneralPurpose),\n    AdministratorLogin = \"mysqladmin\",\n    AdministratorLoginPassword = \"YourSecurePassword123!\",\n    Version = MySqlFlexibleServerVersion.Ver8_0_21,\n    Storage = new MySqlFlexibleServerStorage\n    {\n        StorageSizeInGB = 128,\n        AutoGrow = MySqlFlexibleServerEnableStatusEnum.Enabled,\n        Iops = 3000\n    },\n    Backup = new MySqlFlexibleServerBackupProperties\n    {\n        BackupRetentionDays = 7,\n        GeoRedundantBackup = MySqlFlexibleServerEnableStatusEnum.Disabled\n    },\n    HighAvailability = new MySqlFlexibleServerHighAvailability\n    {\n        Mode = MySqlFlexibleServerHighAvailabilityMode.ZoneRedundant,\n        StandbyAvailabilityZone = \"2\"\n    },\n    AvailabilityZone = \"1\"\n};\n\nArmOperation\u003CMySqlFlexibleServerResource> operation = await servers\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-mysql-server\", data);\n\nMySqlFlexibleServerResource server = operation.Value;\nConsole.WriteLine($\"Server created: {server.Data.FullyQualifiedDomainName}\");\n```\n\n### 2. Create Database\n\n```csharp\nMySqlFlexibleServerResource server = await resourceGroup\n    .GetMySqlFlexibleServerAsync(\"my-mysql-server\");\n\nMySqlFlexibleServerDatabaseCollection databases = server.GetMySqlFlexibleServerDatabases();\n\nMySqlFlexibleServerDatabaseData dbData = new MySqlFlexibleServerDatabaseData\n{\n    Charset = \"utf8mb4\",\n    Collation = \"utf8mb4_unicode_ci\"\n};\n\nArmOperation\u003CMySqlFlexibleServerDatabaseResource> operation = await databases\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"myappdb\", dbData);\n\nMySqlFlexibleServerDatabaseResource database = operation.Value;\nConsole.WriteLine($\"Database created: {database.Data.Name}\");\n```\n\n### 3. Configure Firewall Rules\n\n```csharp\nMySqlFlexibleServerFirewallRuleCollection firewallRules = server.GetMySqlFlexibleServerFirewallRules();\n\n\u002F\u002F Allow specific IP range\nMySqlFlexibleServerFirewallRuleData ruleData = new MySqlFlexibleServerFirewallRuleData\n{\n    StartIPAddress = System.Net.IPAddress.Parse(\"10.0.0.1\"),\n    EndIPAddress = System.Net.IPAddress.Parse(\"10.0.0.255\")\n};\n\nArmOperation\u003CMySqlFlexibleServerFirewallRuleResource> operation = await firewallRules\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"allow-internal\", ruleData);\n\n\u002F\u002F Allow Azure services\nMySqlFlexibleServerFirewallRuleData azureServicesRule = new MySqlFlexibleServerFirewallRuleData\n{\n    StartIPAddress = System.Net.IPAddress.Parse(\"0.0.0.0\"),\n    EndIPAddress = System.Net.IPAddress.Parse(\"0.0.0.0\")\n};\n\nawait firewallRules.CreateOrUpdateAsync(WaitUntil.Completed, \"AllowAllAzureServicesAndResourcesWithinAzureIps\", azureServicesRule);\n```\n\n### 4. Update Server Configuration\n\n```csharp\nMySqlFlexibleServerConfigurationCollection configurations = server.GetMySqlFlexibleServerConfigurations();\n\n\u002F\u002F Get current configuration\nMySqlFlexibleServerConfigurationResource config = await configurations\n    .GetAsync(\"max_connections\");\n\n\u002F\u002F Update configuration\nMySqlFlexibleServerConfigurationData configData = new MySqlFlexibleServerConfigurationData\n{\n    Value = \"500\",\n    Source = MySqlFlexibleServerConfigurationSource.UserOverride\n};\n\nArmOperation\u003CMySqlFlexibleServerConfigurationResource> operation = await configurations\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"max_connections\", configData);\n\n\u002F\u002F Common configurations to tune\nstring[] commonParams = { \"max_connections\", \"innodb_buffer_pool_size\", \"slow_query_log\", \"long_query_time\" };\n```\n\n### 5. Configure Entra ID Administrator\n\n```csharp\nMySqlFlexibleServerAadAdministratorCollection admins = server.GetMySqlFlexibleServerAadAdministrators();\n\nMySqlFlexibleServerAadAdministratorData adminData = new MySqlFlexibleServerAadAdministratorData\n{\n    AdministratorType = MySqlFlexibleServerAdministratorType.ActiveDirectory,\n    Login = \"aad-admin@contoso.com\",\n    Sid = Guid.Parse(\"\u003Centra-object-id>\"),\n    TenantId = Guid.Parse(\"\u003Ctenant-id>\"),\n    IdentityResourceId = new ResourceIdentifier(\"\u002Fsubscriptions\u002F...\u002FuserAssignedIdentities\u002Fmysql-identity\")\n};\n\nArmOperation\u003CMySqlFlexibleServerAadAdministratorResource> operation = await admins\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"ActiveDirectory\", adminData);\n```\n\n### 6. List and Manage Servers\n\n```csharp\n\u002F\u002F List servers in resource group\nawait foreach (MySqlFlexibleServerResource server in resourceGroup.GetMySqlFlexibleServers())\n{\n    Console.WriteLine($\"Server: {server.Data.Name}\");\n    Console.WriteLine($\"  FQDN: {server.Data.FullyQualifiedDomainName}\");\n    Console.WriteLine($\"  Version: {server.Data.Version}\");\n    Console.WriteLine($\"  State: {server.Data.State}\");\n    Console.WriteLine($\"  SKU: {server.Data.Sku.Name} ({server.Data.Sku.Tier})\");\n}\n\n\u002F\u002F List databases in server\nawait foreach (MySqlFlexibleServerDatabaseResource db in server.GetMySqlFlexibleServerDatabases())\n{\n    Console.WriteLine($\"Database: {db.Data.Name}\");\n}\n```\n\n### 7. Backup and Restore\n\n```csharp\n\u002F\u002F List available backups\nawait foreach (MySqlFlexibleServerBackupResource backup in server.GetMySqlFlexibleServerBackups())\n{\n    Console.WriteLine($\"Backup: {backup.Data.Name}\");\n    Console.WriteLine($\"  Type: {backup.Data.BackupType}\");\n    Console.WriteLine($\"  Completed: {backup.Data.CompletedOn}\");\n}\n\n\u002F\u002F Point-in-time restore\nMySqlFlexibleServerData restoreData = new MySqlFlexibleServerData(AzureLocation.EastUS)\n{\n    CreateMode = MySqlFlexibleServerCreateMode.PointInTimeRestore,\n    SourceServerResourceId = server.Id,\n    RestorePointInTime = DateTimeOffset.UtcNow.AddHours(-2)\n};\n\nArmOperation\u003CMySqlFlexibleServerResource> operation = await servers\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-mysql-restored\", restoreData);\n```\n\n### 8. Stop and Start Server\n\n```csharp\nMySqlFlexibleServerResource server = await resourceGroup\n    .GetMySqlFlexibleServerAsync(\"my-mysql-server\");\n\n\u002F\u002F Stop server (saves costs when not in use)\nawait server.StopAsync(WaitUntil.Completed);\n\n\u002F\u002F Start server\nawait server.StartAsync(WaitUntil.Completed);\n\n\u002F\u002F Restart server\nawait server.RestartAsync(WaitUntil.Completed, new MySqlFlexibleServerRestartParameter\n{\n    RestartWithFailover = MySqlFlexibleServerEnableStatusEnum.Enabled,\n    MaxFailoverSeconds = 60\n});\n```\n\n### 9. Update Server (Scale)\n\n```csharp\nMySqlFlexibleServerResource server = await resourceGroup\n    .GetMySqlFlexibleServerAsync(\"my-mysql-server\");\n\nMySqlFlexibleServerPatch patch = new MySqlFlexibleServerPatch\n{\n    Sku = new MySqlFlexibleServerSku(\"Standard_D4ds_v4\", MySqlFlexibleServerSkuTier.GeneralPurpose),\n    Storage = new MySqlFlexibleServerStorage\n    {\n        StorageSizeInGB = 256,\n        Iops = 6000\n    }\n};\n\nArmOperation\u003CMySqlFlexibleServerResource> operation = await server\n    .UpdateAsync(WaitUntil.Completed, patch);\n```\n\n### 10. Delete Server\n\n```csharp\nMySqlFlexibleServerResource server = await resourceGroup\n    .GetMySqlFlexibleServerAsync(\"my-mysql-server\");\n\nawait server.DeleteAsync(WaitUntil.Completed);\n```\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `MySqlFlexibleServerResource` | Flexible Server instance |\n| `MySqlFlexibleServerData` | Server configuration data |\n| `MySqlFlexibleServerCollection` | Collection of servers |\n| `MySqlFlexibleServerDatabaseResource` | Database within server |\n| `MySqlFlexibleServerFirewallRuleResource` | IP firewall rule |\n| `MySqlFlexibleServerConfigurationResource` | Server parameter |\n| `MySqlFlexibleServerBackupResource` | Backup metadata |\n| `MySqlFlexibleServerAadAdministratorResource` | Entra ID admin |\n| `MySqlFlexibleServerSku` | SKU (compute tier + size) |\n| `MySqlFlexibleServerStorage` | Storage configuration |\n| `MySqlFlexibleServerHighAvailability` | HA configuration |\n| `MySqlFlexibleServerBackupProperties` | Backup settings |\n\n## SKU Tiers\n\n| Tier | Use Case | SKU Examples |\n|------|----------|--------------|\n| `Burstable` | Dev\u002Ftest, light workloads | Standard_B1ms, Standard_B2s |\n| `GeneralPurpose` | Production workloads | Standard_D2ds_v4, Standard_D4ds_v4 |\n| `MemoryOptimized` | High memory requirements | Standard_E2ds_v4, Standard_E4ds_v4 |\n\n## High Availability Modes\n\n| Mode | Description |\n|------|-------------|\n| `Disabled` | No HA (single server) |\n| `SameZone` | HA within same availability zone |\n| `ZoneRedundant` | HA across availability zones |\n\n## Best Practices\n\n1. **Use Flexible Server** — Single Server is deprecated\n2. **Enable zone-redundant HA** — For production workloads\n3. **Use DefaultAzureCredential** — Prefer over connection strings\n4. **Configure Entra ID authentication** — More secure than SQL auth\n5. **Enable auto-grow storage** — Prevents out-of-space issues\n6. **Set appropriate backup retention** — 7-35 days based on compliance\n7. **Use private endpoints** — For secure network access\n8. **Tune server parameters** — Based on workload characteristics\n9. **Monitor with Azure Monitor** — Enable metrics and logs\n10. **Stop dev\u002Ftest servers** — Save costs when not in use\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    ArmOperation\u003CMySqlFlexibleServerResource> operation = await servers\n        .CreateOrUpdateAsync(WaitUntil.Completed, \"my-mysql\", data);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"Server already exists\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 400)\n{\n    Console.WriteLine($\"Invalid configuration: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Azure error: {ex.Status} - {ex.Message}\");\n}\n```\n\n## Connection String\n\nAfter creating the server, connect using:\n\n```csharp\n\u002F\u002F ADO.NET connection string\nstring connectionString = $\"Server={server.Data.FullyQualifiedDomainName};\" +\n    \"Database=myappdb;\" +\n    \"User Id=mysqladmin;\" +\n    \"Password=YourSecurePassword123!;\" +\n    \"SslMode=Required;\";\n\n\u002F\u002F With Entra ID token (recommended)\nvar credential = new DefaultAzureCredential();\nvar token = await credential.GetTokenAsync(\n    new TokenRequestContext(new[] { \"https:\u002F\u002Fossrdbms-aad.database.windows.net\u002F.default\" }));\n\nstring connectionString = $\"Server={server.Data.FullyQualifiedDomainName};\" +\n    \"Database=myappdb;\" +\n    $\"User Id=aad-admin@contoso.com;\" +\n    $\"Password={token.Token};\" +\n    \"SslMode=Required;\";\n```\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Azure.ResourceManager.MySql` | MySQL management (this SDK) | `dotnet add package Azure.ResourceManager.MySql` |\n| `Azure.ResourceManager.PostgreSql` | PostgreSQL management | `dotnet add package Azure.ResourceManager.PostgreSql` |\n| `MySqlConnector` | MySQL data access | `dotnet add package MySqlConnector` |\n\n## Reference Links\n\n| Resource | URL |\n|----------|-----|\n| NuGet Package | https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAzure.ResourceManager.MySql |\n| API Reference | https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.resourcemanager.mysql |\n| Product Documentation | https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fmysql\u002Fflexible-server\u002F |\n| GitHub Source | https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fmysql\u002FAzure.ResourceManager.MySql |\n",{"data":43,"body":47},{"name":4,"description":6,"license":28,"metadata":44},{"author":9,"version":45,"package":46},"1.0.0","Azure.ResourceManager.MySql",{"type":48,"children":49},"root",[50,59,65,72,133,155,169,175,290,296,419,425,435,441,448,792,798,927,933,1092,1098,1243,1249,1356,1362,1485,1491,1635,1641,1762,1768,1887,1893,1929,1935,2167,2173,2266,2272,2345,2351,2456,2462,2612,2618,2623,2761,2767,2870,2876,2968],{"type":51,"tag":52,"props":53,"children":55},"element","h1",{"id":54},"azureresourcemanagermysql-net",[56],{"type":57,"value":58},"text","Azure.ResourceManager.MySql (.NET)",{"type":51,"tag":60,"props":61,"children":62},"p",{},[63],{"type":57,"value":64},"Azure Resource Manager SDK for managing MySQL Flexible Server deployments.",{"type":51,"tag":66,"props":67,"children":69},"h2",{"id":68},"installation",[70],{"type":57,"value":71},"Installation",{"type":51,"tag":73,"props":74,"children":79},"pre",{"className":75,"code":76,"language":77,"meta":78,"style":78},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dotnet add package Azure.ResourceManager.MySql\ndotnet add package Azure.Identity\n","bash","",[80],{"type":51,"tag":81,"props":82,"children":83},"code",{"__ignoreMap":78},[84,112],{"type":51,"tag":85,"props":86,"children":89},"span",{"class":87,"line":88},"line",1,[90,96,102,107],{"type":51,"tag":85,"props":91,"children":93},{"style":92},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[94],{"type":57,"value":95},"dotnet",{"type":51,"tag":85,"props":97,"children":99},{"style":98},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[100],{"type":57,"value":101}," add",{"type":51,"tag":85,"props":103,"children":104},{"style":98},[105],{"type":57,"value":106}," package",{"type":51,"tag":85,"props":108,"children":109},{"style":98},[110],{"type":57,"value":111}," Azure.ResourceManager.MySql\n",{"type":51,"tag":85,"props":113,"children":115},{"class":87,"line":114},2,[116,120,124,128],{"type":51,"tag":85,"props":117,"children":118},{"style":92},[119],{"type":57,"value":95},{"type":51,"tag":85,"props":121,"children":122},{"style":98},[123],{"type":57,"value":101},{"type":51,"tag":85,"props":125,"children":126},{"style":98},[127],{"type":57,"value":106},{"type":51,"tag":85,"props":129,"children":130},{"style":98},[131],{"type":57,"value":132}," Azure.Identity\n",{"type":51,"tag":60,"props":134,"children":135},{},[136,142,144,148,153],{"type":51,"tag":137,"props":138,"children":139},"strong",{},[140],{"type":57,"value":141},"Current Version",{"type":57,"value":143},": v1.2.0 (GA)",{"type":51,"tag":145,"props":146,"children":147},"br",{},[],{"type":51,"tag":137,"props":149,"children":150},{},[151],{"type":57,"value":152},"API Version",{"type":57,"value":154},": 2023-12-30",{"type":51,"tag":156,"props":157,"children":158},"blockquote",{},[159],{"type":51,"tag":60,"props":160,"children":161},{},[162,167],{"type":51,"tag":137,"props":163,"children":164},{},[165],{"type":57,"value":166},"Note",{"type":57,"value":168},": This skill focuses on MySQL Flexible Server. Single Server is deprecated and scheduled for retirement.",{"type":51,"tag":66,"props":170,"children":172},{"id":171},"environment-variables",[173],{"type":57,"value":174},"Environment Variables",{"type":51,"tag":73,"props":176,"children":178},{"className":75,"code":177,"language":77,"meta":78,"style":78},"AZURE_SUBSCRIPTION_ID=\u003Cyour-subscription-id>  # Required: Azure subscription ID\nAZURE_RESOURCE_GROUP=\u003Cyour-resource-group>  # Required: resource group name\nAZURE_MYSQL_SERVER_NAME=\u003Cyour-mysql-server>  # Required: MySQL Flexible Server name\nAZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production\n",[179],{"type":51,"tag":81,"props":180,"children":181},{"__ignoreMap":78},[182,213,239,266],{"type":51,"tag":85,"props":183,"children":184},{"class":87,"line":88},[185,191,197,202,207],{"type":51,"tag":85,"props":186,"children":188},{"style":187},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[189],{"type":57,"value":190},"AZURE_SUBSCRIPTION_ID",{"type":51,"tag":85,"props":192,"children":194},{"style":193},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[195],{"type":57,"value":196},"=\u003C",{"type":51,"tag":85,"props":198,"children":199},{"style":98},[200],{"type":57,"value":201},"your-subscription-id",{"type":51,"tag":85,"props":203,"children":204},{"style":193},[205],{"type":57,"value":206},">",{"type":51,"tag":85,"props":208,"children":210},{"style":209},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[211],{"type":57,"value":212},"  # Required: Azure subscription ID\n",{"type":51,"tag":85,"props":214,"children":215},{"class":87,"line":114},[216,221,225,230,234],{"type":51,"tag":85,"props":217,"children":218},{"style":187},[219],{"type":57,"value":220},"AZURE_RESOURCE_GROUP",{"type":51,"tag":85,"props":222,"children":223},{"style":193},[224],{"type":57,"value":196},{"type":51,"tag":85,"props":226,"children":227},{"style":98},[228],{"type":57,"value":229},"your-resource-group",{"type":51,"tag":85,"props":231,"children":232},{"style":193},[233],{"type":57,"value":206},{"type":51,"tag":85,"props":235,"children":236},{"style":209},[237],{"type":57,"value":238},"  # Required: resource group name\n",{"type":51,"tag":85,"props":240,"children":242},{"class":87,"line":241},3,[243,248,252,257,261],{"type":51,"tag":85,"props":244,"children":245},{"style":187},[246],{"type":57,"value":247},"AZURE_MYSQL_SERVER_NAME",{"type":51,"tag":85,"props":249,"children":250},{"style":193},[251],{"type":57,"value":196},{"type":51,"tag":85,"props":253,"children":254},{"style":98},[255],{"type":57,"value":256},"your-mysql-server",{"type":51,"tag":85,"props":258,"children":259},{"style":193},[260],{"type":57,"value":206},{"type":51,"tag":85,"props":262,"children":263},{"style":209},[264],{"type":57,"value":265},"  # Required: MySQL Flexible Server name\n",{"type":51,"tag":85,"props":267,"children":269},{"class":87,"line":268},4,[270,275,280,285],{"type":51,"tag":85,"props":271,"children":272},{"style":187},[273],{"type":57,"value":274},"AZURE_TOKEN_CREDENTIALS",{"type":51,"tag":85,"props":276,"children":277},{"style":193},[278],{"type":57,"value":279},"=",{"type":51,"tag":85,"props":281,"children":282},{"style":98},[283],{"type":57,"value":284},"prod",{"type":51,"tag":85,"props":286,"children":287},{"style":209},[288],{"type":57,"value":289},"  # Required only if DefaultAzureCredential is used in production\n",{"type":51,"tag":66,"props":291,"children":293},{"id":292},"authentication",[294],{"type":57,"value":295},"Authentication",{"type":51,"tag":73,"props":297,"children":301},{"className":298,"code":299,"language":300,"meta":78,"style":78},"language-csharp shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","using Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.MySql;\nusing Azure.ResourceManager.MySql.FlexibleServers;\n\n\u002F\u002F Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=\u003Cspecific_credential>\nvar credential = new DefaultAzureCredential(\n    DefaultAzureCredential.DefaultEnvironmentVariableName\n);\n\u002F\u002F Or use a specific credential directly in production:\n\u002F\u002F See https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Foverview\u002Fazure\u002Fidentity-readme?view=azure-dotnet#credential-classes\n\u002F\u002F var credential = new ManagedIdentityCredential();\nArmClient client = new ArmClient(credential);\n","csharp",[302],{"type":51,"tag":81,"props":303,"children":304},{"__ignoreMap":78},[305,313,321,329,337,347,356,365,374,383,392,401,410],{"type":51,"tag":85,"props":306,"children":307},{"class":87,"line":88},[308],{"type":51,"tag":85,"props":309,"children":310},{},[311],{"type":57,"value":312},"using Azure.Identity;\n",{"type":51,"tag":85,"props":314,"children":315},{"class":87,"line":114},[316],{"type":51,"tag":85,"props":317,"children":318},{},[319],{"type":57,"value":320},"using Azure.ResourceManager;\n",{"type":51,"tag":85,"props":322,"children":323},{"class":87,"line":241},[324],{"type":51,"tag":85,"props":325,"children":326},{},[327],{"type":57,"value":328},"using Azure.ResourceManager.MySql;\n",{"type":51,"tag":85,"props":330,"children":331},{"class":87,"line":268},[332],{"type":51,"tag":85,"props":333,"children":334},{},[335],{"type":57,"value":336},"using Azure.ResourceManager.MySql.FlexibleServers;\n",{"type":51,"tag":85,"props":338,"children":340},{"class":87,"line":339},5,[341],{"type":51,"tag":85,"props":342,"children":344},{"emptyLinePlaceholder":343},true,[345],{"type":57,"value":346},"\n",{"type":51,"tag":85,"props":348,"children":350},{"class":87,"line":349},6,[351],{"type":51,"tag":85,"props":352,"children":353},{},[354],{"type":57,"value":355},"\u002F\u002F Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=\u003Cspecific_credential>\n",{"type":51,"tag":85,"props":357,"children":359},{"class":87,"line":358},7,[360],{"type":51,"tag":85,"props":361,"children":362},{},[363],{"type":57,"value":364},"var credential = new DefaultAzureCredential(\n",{"type":51,"tag":85,"props":366,"children":368},{"class":87,"line":367},8,[369],{"type":51,"tag":85,"props":370,"children":371},{},[372],{"type":57,"value":373},"    DefaultAzureCredential.DefaultEnvironmentVariableName\n",{"type":51,"tag":85,"props":375,"children":377},{"class":87,"line":376},9,[378],{"type":51,"tag":85,"props":379,"children":380},{},[381],{"type":57,"value":382},");\n",{"type":51,"tag":85,"props":384,"children":386},{"class":87,"line":385},10,[387],{"type":51,"tag":85,"props":388,"children":389},{},[390],{"type":57,"value":391},"\u002F\u002F Or use a specific credential directly in production:\n",{"type":51,"tag":85,"props":393,"children":395},{"class":87,"line":394},11,[396],{"type":51,"tag":85,"props":397,"children":398},{},[399],{"type":57,"value":400},"\u002F\u002F See https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Foverview\u002Fazure\u002Fidentity-readme?view=azure-dotnet#credential-classes\n",{"type":51,"tag":85,"props":402,"children":404},{"class":87,"line":403},12,[405],{"type":51,"tag":85,"props":406,"children":407},{},[408],{"type":57,"value":409},"\u002F\u002F var credential = new ManagedIdentityCredential();\n",{"type":51,"tag":85,"props":411,"children":413},{"class":87,"line":412},13,[414],{"type":51,"tag":85,"props":415,"children":416},{},[417],{"type":57,"value":418},"ArmClient client = new ArmClient(credential);\n",{"type":51,"tag":66,"props":420,"children":422},{"id":421},"resource-hierarchy",[423],{"type":57,"value":424},"Resource Hierarchy",{"type":51,"tag":73,"props":426,"children":430},{"className":427,"code":429,"language":57},[428],"language-text","Subscription\n└── ResourceGroup\n    └── MySqlFlexibleServer                 # MySQL Flexible Server instance\n        ├── MySqlFlexibleServerDatabase     # Database within the server\n        ├── MySqlFlexibleServerFirewallRule # IP firewall rules\n        ├── MySqlFlexibleServerConfiguration # Server parameters\n        ├── MySqlFlexibleServerBackup       # Backup information\n        ├── MySqlFlexibleServerMaintenanceWindow # Maintenance schedule\n        └── MySqlFlexibleServerAadAdministrator # Entra ID admin\n",[431],{"type":51,"tag":81,"props":432,"children":433},{"__ignoreMap":78},[434],{"type":57,"value":429},{"type":51,"tag":66,"props":436,"children":438},{"id":437},"core-workflows",[439],{"type":57,"value":440},"Core Workflows",{"type":51,"tag":442,"props":443,"children":445},"h3",{"id":444},"_1-create-mysql-flexible-server",[446],{"type":57,"value":447},"1. Create MySQL Flexible Server",{"type":51,"tag":73,"props":449,"children":451},{"className":298,"code":450,"language":300,"meta":78,"style":78},"using Azure.ResourceManager.MySql.FlexibleServers;\nusing Azure.ResourceManager.MySql.FlexibleServers.Models;\n\nResourceGroupResource resourceGroup = await client\n    .GetDefaultSubscriptionAsync()\n    .Result\n    .GetResourceGroupAsync(\"my-resource-group\");\n\nMySqlFlexibleServerCollection servers = resourceGroup.GetMySqlFlexibleServers();\n\nMySqlFlexibleServerData data = new MySqlFlexibleServerData(AzureLocation.EastUS)\n{\n    Sku = new MySqlFlexibleServerSku(\"Standard_D2ds_v4\", MySqlFlexibleServerSkuTier.GeneralPurpose),\n    AdministratorLogin = \"mysqladmin\",\n    AdministratorLoginPassword = \"YourSecurePassword123!\",\n    Version = MySqlFlexibleServerVersion.Ver8_0_21,\n    Storage = new MySqlFlexibleServerStorage\n    {\n        StorageSizeInGB = 128,\n        AutoGrow = MySqlFlexibleServerEnableStatusEnum.Enabled,\n        Iops = 3000\n    },\n    Backup = new MySqlFlexibleServerBackupProperties\n    {\n        BackupRetentionDays = 7,\n        GeoRedundantBackup = MySqlFlexibleServerEnableStatusEnum.Disabled\n    },\n    HighAvailability = new MySqlFlexibleServerHighAvailability\n    {\n        Mode = MySqlFlexibleServerHighAvailabilityMode.ZoneRedundant,\n        StandbyAvailabilityZone = \"2\"\n    },\n    AvailabilityZone = \"1\"\n};\n\nArmOperation\u003CMySqlFlexibleServerResource> operation = await servers\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-mysql-server\", data);\n\nMySqlFlexibleServerResource server = operation.Value;\nConsole.WriteLine($\"Server created: {server.Data.FullyQualifiedDomainName}\");\n",[452],{"type":51,"tag":81,"props":453,"children":454},{"__ignoreMap":78},[455,462,470,477,485,493,501,509,516,524,531,539,547,555,564,573,582,591,600,609,618,627,636,645,653,662,671,679,688,696,705,714,722,731,740,748,757,766,774,783],{"type":51,"tag":85,"props":456,"children":457},{"class":87,"line":88},[458],{"type":51,"tag":85,"props":459,"children":460},{},[461],{"type":57,"value":336},{"type":51,"tag":85,"props":463,"children":464},{"class":87,"line":114},[465],{"type":51,"tag":85,"props":466,"children":467},{},[468],{"type":57,"value":469},"using Azure.ResourceManager.MySql.FlexibleServers.Models;\n",{"type":51,"tag":85,"props":471,"children":472},{"class":87,"line":241},[473],{"type":51,"tag":85,"props":474,"children":475},{"emptyLinePlaceholder":343},[476],{"type":57,"value":346},{"type":51,"tag":85,"props":478,"children":479},{"class":87,"line":268},[480],{"type":51,"tag":85,"props":481,"children":482},{},[483],{"type":57,"value":484},"ResourceGroupResource resourceGroup = await client\n",{"type":51,"tag":85,"props":486,"children":487},{"class":87,"line":339},[488],{"type":51,"tag":85,"props":489,"children":490},{},[491],{"type":57,"value":492},"    .GetDefaultSubscriptionAsync()\n",{"type":51,"tag":85,"props":494,"children":495},{"class":87,"line":349},[496],{"type":51,"tag":85,"props":497,"children":498},{},[499],{"type":57,"value":500},"    .Result\n",{"type":51,"tag":85,"props":502,"children":503},{"class":87,"line":358},[504],{"type":51,"tag":85,"props":505,"children":506},{},[507],{"type":57,"value":508},"    .GetResourceGroupAsync(\"my-resource-group\");\n",{"type":51,"tag":85,"props":510,"children":511},{"class":87,"line":367},[512],{"type":51,"tag":85,"props":513,"children":514},{"emptyLinePlaceholder":343},[515],{"type":57,"value":346},{"type":51,"tag":85,"props":517,"children":518},{"class":87,"line":376},[519],{"type":51,"tag":85,"props":520,"children":521},{},[522],{"type":57,"value":523},"MySqlFlexibleServerCollection servers = resourceGroup.GetMySqlFlexibleServers();\n",{"type":51,"tag":85,"props":525,"children":526},{"class":87,"line":385},[527],{"type":51,"tag":85,"props":528,"children":529},{"emptyLinePlaceholder":343},[530],{"type":57,"value":346},{"type":51,"tag":85,"props":532,"children":533},{"class":87,"line":394},[534],{"type":51,"tag":85,"props":535,"children":536},{},[537],{"type":57,"value":538},"MySqlFlexibleServerData data = new MySqlFlexibleServerData(AzureLocation.EastUS)\n",{"type":51,"tag":85,"props":540,"children":541},{"class":87,"line":403},[542],{"type":51,"tag":85,"props":543,"children":544},{},[545],{"type":57,"value":546},"{\n",{"type":51,"tag":85,"props":548,"children":549},{"class":87,"line":412},[550],{"type":51,"tag":85,"props":551,"children":552},{},[553],{"type":57,"value":554},"    Sku = new MySqlFlexibleServerSku(\"Standard_D2ds_v4\", MySqlFlexibleServerSkuTier.GeneralPurpose),\n",{"type":51,"tag":85,"props":556,"children":558},{"class":87,"line":557},14,[559],{"type":51,"tag":85,"props":560,"children":561},{},[562],{"type":57,"value":563},"    AdministratorLogin = \"mysqladmin\",\n",{"type":51,"tag":85,"props":565,"children":567},{"class":87,"line":566},15,[568],{"type":51,"tag":85,"props":569,"children":570},{},[571],{"type":57,"value":572},"    AdministratorLoginPassword = \"YourSecurePassword123!\",\n",{"type":51,"tag":85,"props":574,"children":576},{"class":87,"line":575},16,[577],{"type":51,"tag":85,"props":578,"children":579},{},[580],{"type":57,"value":581},"    Version = MySqlFlexibleServerVersion.Ver8_0_21,\n",{"type":51,"tag":85,"props":583,"children":585},{"class":87,"line":584},17,[586],{"type":51,"tag":85,"props":587,"children":588},{},[589],{"type":57,"value":590},"    Storage = new MySqlFlexibleServerStorage\n",{"type":51,"tag":85,"props":592,"children":594},{"class":87,"line":593},18,[595],{"type":51,"tag":85,"props":596,"children":597},{},[598],{"type":57,"value":599},"    {\n",{"type":51,"tag":85,"props":601,"children":603},{"class":87,"line":602},19,[604],{"type":51,"tag":85,"props":605,"children":606},{},[607],{"type":57,"value":608},"        StorageSizeInGB = 128,\n",{"type":51,"tag":85,"props":610,"children":612},{"class":87,"line":611},20,[613],{"type":51,"tag":85,"props":614,"children":615},{},[616],{"type":57,"value":617},"        AutoGrow = MySqlFlexibleServerEnableStatusEnum.Enabled,\n",{"type":51,"tag":85,"props":619,"children":621},{"class":87,"line":620},21,[622],{"type":51,"tag":85,"props":623,"children":624},{},[625],{"type":57,"value":626},"        Iops = 3000\n",{"type":51,"tag":85,"props":628,"children":630},{"class":87,"line":629},22,[631],{"type":51,"tag":85,"props":632,"children":633},{},[634],{"type":57,"value":635},"    },\n",{"type":51,"tag":85,"props":637,"children":639},{"class":87,"line":638},23,[640],{"type":51,"tag":85,"props":641,"children":642},{},[643],{"type":57,"value":644},"    Backup = new MySqlFlexibleServerBackupProperties\n",{"type":51,"tag":85,"props":646,"children":648},{"class":87,"line":647},24,[649],{"type":51,"tag":85,"props":650,"children":651},{},[652],{"type":57,"value":599},{"type":51,"tag":85,"props":654,"children":656},{"class":87,"line":655},25,[657],{"type":51,"tag":85,"props":658,"children":659},{},[660],{"type":57,"value":661},"        BackupRetentionDays = 7,\n",{"type":51,"tag":85,"props":663,"children":665},{"class":87,"line":664},26,[666],{"type":51,"tag":85,"props":667,"children":668},{},[669],{"type":57,"value":670},"        GeoRedundantBackup = MySqlFlexibleServerEnableStatusEnum.Disabled\n",{"type":51,"tag":85,"props":672,"children":674},{"class":87,"line":673},27,[675],{"type":51,"tag":85,"props":676,"children":677},{},[678],{"type":57,"value":635},{"type":51,"tag":85,"props":680,"children":682},{"class":87,"line":681},28,[683],{"type":51,"tag":85,"props":684,"children":685},{},[686],{"type":57,"value":687},"    HighAvailability = new MySqlFlexibleServerHighAvailability\n",{"type":51,"tag":85,"props":689,"children":691},{"class":87,"line":690},29,[692],{"type":51,"tag":85,"props":693,"children":694},{},[695],{"type":57,"value":599},{"type":51,"tag":85,"props":697,"children":699},{"class":87,"line":698},30,[700],{"type":51,"tag":85,"props":701,"children":702},{},[703],{"type":57,"value":704},"        Mode = MySqlFlexibleServerHighAvailabilityMode.ZoneRedundant,\n",{"type":51,"tag":85,"props":706,"children":708},{"class":87,"line":707},31,[709],{"type":51,"tag":85,"props":710,"children":711},{},[712],{"type":57,"value":713},"        StandbyAvailabilityZone = \"2\"\n",{"type":51,"tag":85,"props":715,"children":717},{"class":87,"line":716},32,[718],{"type":51,"tag":85,"props":719,"children":720},{},[721],{"type":57,"value":635},{"type":51,"tag":85,"props":723,"children":725},{"class":87,"line":724},33,[726],{"type":51,"tag":85,"props":727,"children":728},{},[729],{"type":57,"value":730},"    AvailabilityZone = \"1\"\n",{"type":51,"tag":85,"props":732,"children":734},{"class":87,"line":733},34,[735],{"type":51,"tag":85,"props":736,"children":737},{},[738],{"type":57,"value":739},"};\n",{"type":51,"tag":85,"props":741,"children":743},{"class":87,"line":742},35,[744],{"type":51,"tag":85,"props":745,"children":746},{"emptyLinePlaceholder":343},[747],{"type":57,"value":346},{"type":51,"tag":85,"props":749,"children":751},{"class":87,"line":750},36,[752],{"type":51,"tag":85,"props":753,"children":754},{},[755],{"type":57,"value":756},"ArmOperation\u003CMySqlFlexibleServerResource> operation = await servers\n",{"type":51,"tag":85,"props":758,"children":760},{"class":87,"line":759},37,[761],{"type":51,"tag":85,"props":762,"children":763},{},[764],{"type":57,"value":765},"    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-mysql-server\", data);\n",{"type":51,"tag":85,"props":767,"children":769},{"class":87,"line":768},38,[770],{"type":51,"tag":85,"props":771,"children":772},{"emptyLinePlaceholder":343},[773],{"type":57,"value":346},{"type":51,"tag":85,"props":775,"children":777},{"class":87,"line":776},39,[778],{"type":51,"tag":85,"props":779,"children":780},{},[781],{"type":57,"value":782},"MySqlFlexibleServerResource server = operation.Value;\n",{"type":51,"tag":85,"props":784,"children":786},{"class":87,"line":785},40,[787],{"type":51,"tag":85,"props":788,"children":789},{},[790],{"type":57,"value":791},"Console.WriteLine($\"Server created: {server.Data.FullyQualifiedDomainName}\");\n",{"type":51,"tag":442,"props":793,"children":795},{"id":794},"_2-create-database",[796],{"type":57,"value":797},"2. Create Database",{"type":51,"tag":73,"props":799,"children":801},{"className":298,"code":800,"language":300,"meta":78,"style":78},"MySqlFlexibleServerResource server = await resourceGroup\n    .GetMySqlFlexibleServerAsync(\"my-mysql-server\");\n\nMySqlFlexibleServerDatabaseCollection databases = server.GetMySqlFlexibleServerDatabases();\n\nMySqlFlexibleServerDatabaseData dbData = new MySqlFlexibleServerDatabaseData\n{\n    Charset = \"utf8mb4\",\n    Collation = \"utf8mb4_unicode_ci\"\n};\n\nArmOperation\u003CMySqlFlexibleServerDatabaseResource> operation = await databases\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"myappdb\", dbData);\n\nMySqlFlexibleServerDatabaseResource database = operation.Value;\nConsole.WriteLine($\"Database created: {database.Data.Name}\");\n",[802],{"type":51,"tag":81,"props":803,"children":804},{"__ignoreMap":78},[805,813,821,828,836,843,851,858,866,874,881,888,896,904,911,919],{"type":51,"tag":85,"props":806,"children":807},{"class":87,"line":88},[808],{"type":51,"tag":85,"props":809,"children":810},{},[811],{"type":57,"value":812},"MySqlFlexibleServerResource server = await resourceGroup\n",{"type":51,"tag":85,"props":814,"children":815},{"class":87,"line":114},[816],{"type":51,"tag":85,"props":817,"children":818},{},[819],{"type":57,"value":820},"    .GetMySqlFlexibleServerAsync(\"my-mysql-server\");\n",{"type":51,"tag":85,"props":822,"children":823},{"class":87,"line":241},[824],{"type":51,"tag":85,"props":825,"children":826},{"emptyLinePlaceholder":343},[827],{"type":57,"value":346},{"type":51,"tag":85,"props":829,"children":830},{"class":87,"line":268},[831],{"type":51,"tag":85,"props":832,"children":833},{},[834],{"type":57,"value":835},"MySqlFlexibleServerDatabaseCollection databases = server.GetMySqlFlexibleServerDatabases();\n",{"type":51,"tag":85,"props":837,"children":838},{"class":87,"line":339},[839],{"type":51,"tag":85,"props":840,"children":841},{"emptyLinePlaceholder":343},[842],{"type":57,"value":346},{"type":51,"tag":85,"props":844,"children":845},{"class":87,"line":349},[846],{"type":51,"tag":85,"props":847,"children":848},{},[849],{"type":57,"value":850},"MySqlFlexibleServerDatabaseData dbData = new MySqlFlexibleServerDatabaseData\n",{"type":51,"tag":85,"props":852,"children":853},{"class":87,"line":358},[854],{"type":51,"tag":85,"props":855,"children":856},{},[857],{"type":57,"value":546},{"type":51,"tag":85,"props":859,"children":860},{"class":87,"line":367},[861],{"type":51,"tag":85,"props":862,"children":863},{},[864],{"type":57,"value":865},"    Charset = \"utf8mb4\",\n",{"type":51,"tag":85,"props":867,"children":868},{"class":87,"line":376},[869],{"type":51,"tag":85,"props":870,"children":871},{},[872],{"type":57,"value":873},"    Collation = \"utf8mb4_unicode_ci\"\n",{"type":51,"tag":85,"props":875,"children":876},{"class":87,"line":385},[877],{"type":51,"tag":85,"props":878,"children":879},{},[880],{"type":57,"value":739},{"type":51,"tag":85,"props":882,"children":883},{"class":87,"line":394},[884],{"type":51,"tag":85,"props":885,"children":886},{"emptyLinePlaceholder":343},[887],{"type":57,"value":346},{"type":51,"tag":85,"props":889,"children":890},{"class":87,"line":403},[891],{"type":51,"tag":85,"props":892,"children":893},{},[894],{"type":57,"value":895},"ArmOperation\u003CMySqlFlexibleServerDatabaseResource> operation = await databases\n",{"type":51,"tag":85,"props":897,"children":898},{"class":87,"line":412},[899],{"type":51,"tag":85,"props":900,"children":901},{},[902],{"type":57,"value":903},"    .CreateOrUpdateAsync(WaitUntil.Completed, \"myappdb\", dbData);\n",{"type":51,"tag":85,"props":905,"children":906},{"class":87,"line":557},[907],{"type":51,"tag":85,"props":908,"children":909},{"emptyLinePlaceholder":343},[910],{"type":57,"value":346},{"type":51,"tag":85,"props":912,"children":913},{"class":87,"line":566},[914],{"type":51,"tag":85,"props":915,"children":916},{},[917],{"type":57,"value":918},"MySqlFlexibleServerDatabaseResource database = operation.Value;\n",{"type":51,"tag":85,"props":920,"children":921},{"class":87,"line":575},[922],{"type":51,"tag":85,"props":923,"children":924},{},[925],{"type":57,"value":926},"Console.WriteLine($\"Database created: {database.Data.Name}\");\n",{"type":51,"tag":442,"props":928,"children":930},{"id":929},"_3-configure-firewall-rules",[931],{"type":57,"value":932},"3. Configure Firewall Rules",{"type":51,"tag":73,"props":934,"children":936},{"className":298,"code":935,"language":300,"meta":78,"style":78},"MySqlFlexibleServerFirewallRuleCollection firewallRules = server.GetMySqlFlexibleServerFirewallRules();\n\n\u002F\u002F Allow specific IP range\nMySqlFlexibleServerFirewallRuleData ruleData = new MySqlFlexibleServerFirewallRuleData\n{\n    StartIPAddress = System.Net.IPAddress.Parse(\"10.0.0.1\"),\n    EndIPAddress = System.Net.IPAddress.Parse(\"10.0.0.255\")\n};\n\nArmOperation\u003CMySqlFlexibleServerFirewallRuleResource> operation = await firewallRules\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"allow-internal\", ruleData);\n\n\u002F\u002F Allow Azure services\nMySqlFlexibleServerFirewallRuleData azureServicesRule = new MySqlFlexibleServerFirewallRuleData\n{\n    StartIPAddress = System.Net.IPAddress.Parse(\"0.0.0.0\"),\n    EndIPAddress = System.Net.IPAddress.Parse(\"0.0.0.0\")\n};\n\nawait firewallRules.CreateOrUpdateAsync(WaitUntil.Completed, \"AllowAllAzureServicesAndResourcesWithinAzureIps\", azureServicesRule);\n",[937],{"type":51,"tag":81,"props":938,"children":939},{"__ignoreMap":78},[940,948,955,963,971,978,986,994,1001,1008,1016,1024,1031,1039,1047,1054,1062,1070,1077,1084],{"type":51,"tag":85,"props":941,"children":942},{"class":87,"line":88},[943],{"type":51,"tag":85,"props":944,"children":945},{},[946],{"type":57,"value":947},"MySqlFlexibleServerFirewallRuleCollection firewallRules = server.GetMySqlFlexibleServerFirewallRules();\n",{"type":51,"tag":85,"props":949,"children":950},{"class":87,"line":114},[951],{"type":51,"tag":85,"props":952,"children":953},{"emptyLinePlaceholder":343},[954],{"type":57,"value":346},{"type":51,"tag":85,"props":956,"children":957},{"class":87,"line":241},[958],{"type":51,"tag":85,"props":959,"children":960},{},[961],{"type":57,"value":962},"\u002F\u002F Allow specific IP range\n",{"type":51,"tag":85,"props":964,"children":965},{"class":87,"line":268},[966],{"type":51,"tag":85,"props":967,"children":968},{},[969],{"type":57,"value":970},"MySqlFlexibleServerFirewallRuleData ruleData = new MySqlFlexibleServerFirewallRuleData\n",{"type":51,"tag":85,"props":972,"children":973},{"class":87,"line":339},[974],{"type":51,"tag":85,"props":975,"children":976},{},[977],{"type":57,"value":546},{"type":51,"tag":85,"props":979,"children":980},{"class":87,"line":349},[981],{"type":51,"tag":85,"props":982,"children":983},{},[984],{"type":57,"value":985},"    StartIPAddress = System.Net.IPAddress.Parse(\"10.0.0.1\"),\n",{"type":51,"tag":85,"props":987,"children":988},{"class":87,"line":358},[989],{"type":51,"tag":85,"props":990,"children":991},{},[992],{"type":57,"value":993},"    EndIPAddress = System.Net.IPAddress.Parse(\"10.0.0.255\")\n",{"type":51,"tag":85,"props":995,"children":996},{"class":87,"line":367},[997],{"type":51,"tag":85,"props":998,"children":999},{},[1000],{"type":57,"value":739},{"type":51,"tag":85,"props":1002,"children":1003},{"class":87,"line":376},[1004],{"type":51,"tag":85,"props":1005,"children":1006},{"emptyLinePlaceholder":343},[1007],{"type":57,"value":346},{"type":51,"tag":85,"props":1009,"children":1010},{"class":87,"line":385},[1011],{"type":51,"tag":85,"props":1012,"children":1013},{},[1014],{"type":57,"value":1015},"ArmOperation\u003CMySqlFlexibleServerFirewallRuleResource> operation = await firewallRules\n",{"type":51,"tag":85,"props":1017,"children":1018},{"class":87,"line":394},[1019],{"type":51,"tag":85,"props":1020,"children":1021},{},[1022],{"type":57,"value":1023},"    .CreateOrUpdateAsync(WaitUntil.Completed, \"allow-internal\", ruleData);\n",{"type":51,"tag":85,"props":1025,"children":1026},{"class":87,"line":403},[1027],{"type":51,"tag":85,"props":1028,"children":1029},{"emptyLinePlaceholder":343},[1030],{"type":57,"value":346},{"type":51,"tag":85,"props":1032,"children":1033},{"class":87,"line":412},[1034],{"type":51,"tag":85,"props":1035,"children":1036},{},[1037],{"type":57,"value":1038},"\u002F\u002F Allow Azure services\n",{"type":51,"tag":85,"props":1040,"children":1041},{"class":87,"line":557},[1042],{"type":51,"tag":85,"props":1043,"children":1044},{},[1045],{"type":57,"value":1046},"MySqlFlexibleServerFirewallRuleData azureServicesRule = new MySqlFlexibleServerFirewallRuleData\n",{"type":51,"tag":85,"props":1048,"children":1049},{"class":87,"line":566},[1050],{"type":51,"tag":85,"props":1051,"children":1052},{},[1053],{"type":57,"value":546},{"type":51,"tag":85,"props":1055,"children":1056},{"class":87,"line":575},[1057],{"type":51,"tag":85,"props":1058,"children":1059},{},[1060],{"type":57,"value":1061},"    StartIPAddress = System.Net.IPAddress.Parse(\"0.0.0.0\"),\n",{"type":51,"tag":85,"props":1063,"children":1064},{"class":87,"line":584},[1065],{"type":51,"tag":85,"props":1066,"children":1067},{},[1068],{"type":57,"value":1069},"    EndIPAddress = System.Net.IPAddress.Parse(\"0.0.0.0\")\n",{"type":51,"tag":85,"props":1071,"children":1072},{"class":87,"line":593},[1073],{"type":51,"tag":85,"props":1074,"children":1075},{},[1076],{"type":57,"value":739},{"type":51,"tag":85,"props":1078,"children":1079},{"class":87,"line":602},[1080],{"type":51,"tag":85,"props":1081,"children":1082},{"emptyLinePlaceholder":343},[1083],{"type":57,"value":346},{"type":51,"tag":85,"props":1085,"children":1086},{"class":87,"line":611},[1087],{"type":51,"tag":85,"props":1088,"children":1089},{},[1090],{"type":57,"value":1091},"await firewallRules.CreateOrUpdateAsync(WaitUntil.Completed, \"AllowAllAzureServicesAndResourcesWithinAzureIps\", azureServicesRule);\n",{"type":51,"tag":442,"props":1093,"children":1095},{"id":1094},"_4-update-server-configuration",[1096],{"type":57,"value":1097},"4. Update Server Configuration",{"type":51,"tag":73,"props":1099,"children":1101},{"className":298,"code":1100,"language":300,"meta":78,"style":78},"MySqlFlexibleServerConfigurationCollection configurations = server.GetMySqlFlexibleServerConfigurations();\n\n\u002F\u002F Get current configuration\nMySqlFlexibleServerConfigurationResource config = await configurations\n    .GetAsync(\"max_connections\");\n\n\u002F\u002F Update configuration\nMySqlFlexibleServerConfigurationData configData = new MySqlFlexibleServerConfigurationData\n{\n    Value = \"500\",\n    Source = MySqlFlexibleServerConfigurationSource.UserOverride\n};\n\nArmOperation\u003CMySqlFlexibleServerConfigurationResource> operation = await configurations\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"max_connections\", configData);\n\n\u002F\u002F Common configurations to tune\nstring[] commonParams = { \"max_connections\", \"innodb_buffer_pool_size\", \"slow_query_log\", \"long_query_time\" };\n",[1102],{"type":51,"tag":81,"props":1103,"children":1104},{"__ignoreMap":78},[1105,1113,1120,1128,1136,1144,1151,1159,1167,1174,1182,1190,1197,1204,1212,1220,1227,1235],{"type":51,"tag":85,"props":1106,"children":1107},{"class":87,"line":88},[1108],{"type":51,"tag":85,"props":1109,"children":1110},{},[1111],{"type":57,"value":1112},"MySqlFlexibleServerConfigurationCollection configurations = server.GetMySqlFlexibleServerConfigurations();\n",{"type":51,"tag":85,"props":1114,"children":1115},{"class":87,"line":114},[1116],{"type":51,"tag":85,"props":1117,"children":1118},{"emptyLinePlaceholder":343},[1119],{"type":57,"value":346},{"type":51,"tag":85,"props":1121,"children":1122},{"class":87,"line":241},[1123],{"type":51,"tag":85,"props":1124,"children":1125},{},[1126],{"type":57,"value":1127},"\u002F\u002F Get current configuration\n",{"type":51,"tag":85,"props":1129,"children":1130},{"class":87,"line":268},[1131],{"type":51,"tag":85,"props":1132,"children":1133},{},[1134],{"type":57,"value":1135},"MySqlFlexibleServerConfigurationResource config = await configurations\n",{"type":51,"tag":85,"props":1137,"children":1138},{"class":87,"line":339},[1139],{"type":51,"tag":85,"props":1140,"children":1141},{},[1142],{"type":57,"value":1143},"    .GetAsync(\"max_connections\");\n",{"type":51,"tag":85,"props":1145,"children":1146},{"class":87,"line":349},[1147],{"type":51,"tag":85,"props":1148,"children":1149},{"emptyLinePlaceholder":343},[1150],{"type":57,"value":346},{"type":51,"tag":85,"props":1152,"children":1153},{"class":87,"line":358},[1154],{"type":51,"tag":85,"props":1155,"children":1156},{},[1157],{"type":57,"value":1158},"\u002F\u002F Update configuration\n",{"type":51,"tag":85,"props":1160,"children":1161},{"class":87,"line":367},[1162],{"type":51,"tag":85,"props":1163,"children":1164},{},[1165],{"type":57,"value":1166},"MySqlFlexibleServerConfigurationData configData = new MySqlFlexibleServerConfigurationData\n",{"type":51,"tag":85,"props":1168,"children":1169},{"class":87,"line":376},[1170],{"type":51,"tag":85,"props":1171,"children":1172},{},[1173],{"type":57,"value":546},{"type":51,"tag":85,"props":1175,"children":1176},{"class":87,"line":385},[1177],{"type":51,"tag":85,"props":1178,"children":1179},{},[1180],{"type":57,"value":1181},"    Value = \"500\",\n",{"type":51,"tag":85,"props":1183,"children":1184},{"class":87,"line":394},[1185],{"type":51,"tag":85,"props":1186,"children":1187},{},[1188],{"type":57,"value":1189},"    Source = MySqlFlexibleServerConfigurationSource.UserOverride\n",{"type":51,"tag":85,"props":1191,"children":1192},{"class":87,"line":403},[1193],{"type":51,"tag":85,"props":1194,"children":1195},{},[1196],{"type":57,"value":739},{"type":51,"tag":85,"props":1198,"children":1199},{"class":87,"line":412},[1200],{"type":51,"tag":85,"props":1201,"children":1202},{"emptyLinePlaceholder":343},[1203],{"type":57,"value":346},{"type":51,"tag":85,"props":1205,"children":1206},{"class":87,"line":557},[1207],{"type":51,"tag":85,"props":1208,"children":1209},{},[1210],{"type":57,"value":1211},"ArmOperation\u003CMySqlFlexibleServerConfigurationResource> operation = await configurations\n",{"type":51,"tag":85,"props":1213,"children":1214},{"class":87,"line":566},[1215],{"type":51,"tag":85,"props":1216,"children":1217},{},[1218],{"type":57,"value":1219},"    .CreateOrUpdateAsync(WaitUntil.Completed, \"max_connections\", configData);\n",{"type":51,"tag":85,"props":1221,"children":1222},{"class":87,"line":575},[1223],{"type":51,"tag":85,"props":1224,"children":1225},{"emptyLinePlaceholder":343},[1226],{"type":57,"value":346},{"type":51,"tag":85,"props":1228,"children":1229},{"class":87,"line":584},[1230],{"type":51,"tag":85,"props":1231,"children":1232},{},[1233],{"type":57,"value":1234},"\u002F\u002F Common configurations to tune\n",{"type":51,"tag":85,"props":1236,"children":1237},{"class":87,"line":593},[1238],{"type":51,"tag":85,"props":1239,"children":1240},{},[1241],{"type":57,"value":1242},"string[] commonParams = { \"max_connections\", \"innodb_buffer_pool_size\", \"slow_query_log\", \"long_query_time\" };\n",{"type":51,"tag":442,"props":1244,"children":1246},{"id":1245},"_5-configure-entra-id-administrator",[1247],{"type":57,"value":1248},"5. Configure Entra ID Administrator",{"type":51,"tag":73,"props":1250,"children":1252},{"className":298,"code":1251,"language":300,"meta":78,"style":78},"MySqlFlexibleServerAadAdministratorCollection admins = server.GetMySqlFlexibleServerAadAdministrators();\n\nMySqlFlexibleServerAadAdministratorData adminData = new MySqlFlexibleServerAadAdministratorData\n{\n    AdministratorType = MySqlFlexibleServerAdministratorType.ActiveDirectory,\n    Login = \"aad-admin@contoso.com\",\n    Sid = Guid.Parse(\"\u003Centra-object-id>\"),\n    TenantId = Guid.Parse(\"\u003Ctenant-id>\"),\n    IdentityResourceId = new ResourceIdentifier(\"\u002Fsubscriptions\u002F...\u002FuserAssignedIdentities\u002Fmysql-identity\")\n};\n\nArmOperation\u003CMySqlFlexibleServerAadAdministratorResource> operation = await admins\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"ActiveDirectory\", adminData);\n",[1253],{"type":51,"tag":81,"props":1254,"children":1255},{"__ignoreMap":78},[1256,1264,1271,1279,1286,1294,1302,1310,1318,1326,1333,1340,1348],{"type":51,"tag":85,"props":1257,"children":1258},{"class":87,"line":88},[1259],{"type":51,"tag":85,"props":1260,"children":1261},{},[1262],{"type":57,"value":1263},"MySqlFlexibleServerAadAdministratorCollection admins = server.GetMySqlFlexibleServerAadAdministrators();\n",{"type":51,"tag":85,"props":1265,"children":1266},{"class":87,"line":114},[1267],{"type":51,"tag":85,"props":1268,"children":1269},{"emptyLinePlaceholder":343},[1270],{"type":57,"value":346},{"type":51,"tag":85,"props":1272,"children":1273},{"class":87,"line":241},[1274],{"type":51,"tag":85,"props":1275,"children":1276},{},[1277],{"type":57,"value":1278},"MySqlFlexibleServerAadAdministratorData adminData = new MySqlFlexibleServerAadAdministratorData\n",{"type":51,"tag":85,"props":1280,"children":1281},{"class":87,"line":268},[1282],{"type":51,"tag":85,"props":1283,"children":1284},{},[1285],{"type":57,"value":546},{"type":51,"tag":85,"props":1287,"children":1288},{"class":87,"line":339},[1289],{"type":51,"tag":85,"props":1290,"children":1291},{},[1292],{"type":57,"value":1293},"    AdministratorType = MySqlFlexibleServerAdministratorType.ActiveDirectory,\n",{"type":51,"tag":85,"props":1295,"children":1296},{"class":87,"line":349},[1297],{"type":51,"tag":85,"props":1298,"children":1299},{},[1300],{"type":57,"value":1301},"    Login = \"aad-admin@contoso.com\",\n",{"type":51,"tag":85,"props":1303,"children":1304},{"class":87,"line":358},[1305],{"type":51,"tag":85,"props":1306,"children":1307},{},[1308],{"type":57,"value":1309},"    Sid = Guid.Parse(\"\u003Centra-object-id>\"),\n",{"type":51,"tag":85,"props":1311,"children":1312},{"class":87,"line":367},[1313],{"type":51,"tag":85,"props":1314,"children":1315},{},[1316],{"type":57,"value":1317},"    TenantId = Guid.Parse(\"\u003Ctenant-id>\"),\n",{"type":51,"tag":85,"props":1319,"children":1320},{"class":87,"line":376},[1321],{"type":51,"tag":85,"props":1322,"children":1323},{},[1324],{"type":57,"value":1325},"    IdentityResourceId = new ResourceIdentifier(\"\u002Fsubscriptions\u002F...\u002FuserAssignedIdentities\u002Fmysql-identity\")\n",{"type":51,"tag":85,"props":1327,"children":1328},{"class":87,"line":385},[1329],{"type":51,"tag":85,"props":1330,"children":1331},{},[1332],{"type":57,"value":739},{"type":51,"tag":85,"props":1334,"children":1335},{"class":87,"line":394},[1336],{"type":51,"tag":85,"props":1337,"children":1338},{"emptyLinePlaceholder":343},[1339],{"type":57,"value":346},{"type":51,"tag":85,"props":1341,"children":1342},{"class":87,"line":403},[1343],{"type":51,"tag":85,"props":1344,"children":1345},{},[1346],{"type":57,"value":1347},"ArmOperation\u003CMySqlFlexibleServerAadAdministratorResource> operation = await admins\n",{"type":51,"tag":85,"props":1349,"children":1350},{"class":87,"line":412},[1351],{"type":51,"tag":85,"props":1352,"children":1353},{},[1354],{"type":57,"value":1355},"    .CreateOrUpdateAsync(WaitUntil.Completed, \"ActiveDirectory\", adminData);\n",{"type":51,"tag":442,"props":1357,"children":1359},{"id":1358},"_6-list-and-manage-servers",[1360],{"type":57,"value":1361},"6. List and Manage Servers",{"type":51,"tag":73,"props":1363,"children":1365},{"className":298,"code":1364,"language":300,"meta":78,"style":78},"\u002F\u002F List servers in resource group\nawait foreach (MySqlFlexibleServerResource server in resourceGroup.GetMySqlFlexibleServers())\n{\n    Console.WriteLine($\"Server: {server.Data.Name}\");\n    Console.WriteLine($\"  FQDN: {server.Data.FullyQualifiedDomainName}\");\n    Console.WriteLine($\"  Version: {server.Data.Version}\");\n    Console.WriteLine($\"  State: {server.Data.State}\");\n    Console.WriteLine($\"  SKU: {server.Data.Sku.Name} ({server.Data.Sku.Tier})\");\n}\n\n\u002F\u002F List databases in server\nawait foreach (MySqlFlexibleServerDatabaseResource db in server.GetMySqlFlexibleServerDatabases())\n{\n    Console.WriteLine($\"Database: {db.Data.Name}\");\n}\n",[1366],{"type":51,"tag":81,"props":1367,"children":1368},{"__ignoreMap":78},[1369,1377,1385,1392,1400,1408,1416,1424,1432,1440,1447,1455,1463,1470,1478],{"type":51,"tag":85,"props":1370,"children":1371},{"class":87,"line":88},[1372],{"type":51,"tag":85,"props":1373,"children":1374},{},[1375],{"type":57,"value":1376},"\u002F\u002F List servers in resource group\n",{"type":51,"tag":85,"props":1378,"children":1379},{"class":87,"line":114},[1380],{"type":51,"tag":85,"props":1381,"children":1382},{},[1383],{"type":57,"value":1384},"await foreach (MySqlFlexibleServerResource server in resourceGroup.GetMySqlFlexibleServers())\n",{"type":51,"tag":85,"props":1386,"children":1387},{"class":87,"line":241},[1388],{"type":51,"tag":85,"props":1389,"children":1390},{},[1391],{"type":57,"value":546},{"type":51,"tag":85,"props":1393,"children":1394},{"class":87,"line":268},[1395],{"type":51,"tag":85,"props":1396,"children":1397},{},[1398],{"type":57,"value":1399},"    Console.WriteLine($\"Server: {server.Data.Name}\");\n",{"type":51,"tag":85,"props":1401,"children":1402},{"class":87,"line":339},[1403],{"type":51,"tag":85,"props":1404,"children":1405},{},[1406],{"type":57,"value":1407},"    Console.WriteLine($\"  FQDN: {server.Data.FullyQualifiedDomainName}\");\n",{"type":51,"tag":85,"props":1409,"children":1410},{"class":87,"line":349},[1411],{"type":51,"tag":85,"props":1412,"children":1413},{},[1414],{"type":57,"value":1415},"    Console.WriteLine($\"  Version: {server.Data.Version}\");\n",{"type":51,"tag":85,"props":1417,"children":1418},{"class":87,"line":358},[1419],{"type":51,"tag":85,"props":1420,"children":1421},{},[1422],{"type":57,"value":1423},"    Console.WriteLine($\"  State: {server.Data.State}\");\n",{"type":51,"tag":85,"props":1425,"children":1426},{"class":87,"line":367},[1427],{"type":51,"tag":85,"props":1428,"children":1429},{},[1430],{"type":57,"value":1431},"    Console.WriteLine($\"  SKU: {server.Data.Sku.Name} ({server.Data.Sku.Tier})\");\n",{"type":51,"tag":85,"props":1433,"children":1434},{"class":87,"line":376},[1435],{"type":51,"tag":85,"props":1436,"children":1437},{},[1438],{"type":57,"value":1439},"}\n",{"type":51,"tag":85,"props":1441,"children":1442},{"class":87,"line":385},[1443],{"type":51,"tag":85,"props":1444,"children":1445},{"emptyLinePlaceholder":343},[1446],{"type":57,"value":346},{"type":51,"tag":85,"props":1448,"children":1449},{"class":87,"line":394},[1450],{"type":51,"tag":85,"props":1451,"children":1452},{},[1453],{"type":57,"value":1454},"\u002F\u002F List databases in server\n",{"type":51,"tag":85,"props":1456,"children":1457},{"class":87,"line":403},[1458],{"type":51,"tag":85,"props":1459,"children":1460},{},[1461],{"type":57,"value":1462},"await foreach (MySqlFlexibleServerDatabaseResource db in server.GetMySqlFlexibleServerDatabases())\n",{"type":51,"tag":85,"props":1464,"children":1465},{"class":87,"line":412},[1466],{"type":51,"tag":85,"props":1467,"children":1468},{},[1469],{"type":57,"value":546},{"type":51,"tag":85,"props":1471,"children":1472},{"class":87,"line":557},[1473],{"type":51,"tag":85,"props":1474,"children":1475},{},[1476],{"type":57,"value":1477},"    Console.WriteLine($\"Database: {db.Data.Name}\");\n",{"type":51,"tag":85,"props":1479,"children":1480},{"class":87,"line":566},[1481],{"type":51,"tag":85,"props":1482,"children":1483},{},[1484],{"type":57,"value":1439},{"type":51,"tag":442,"props":1486,"children":1488},{"id":1487},"_7-backup-and-restore",[1489],{"type":57,"value":1490},"7. Backup and Restore",{"type":51,"tag":73,"props":1492,"children":1494},{"className":298,"code":1493,"language":300,"meta":78,"style":78},"\u002F\u002F List available backups\nawait foreach (MySqlFlexibleServerBackupResource backup in server.GetMySqlFlexibleServerBackups())\n{\n    Console.WriteLine($\"Backup: {backup.Data.Name}\");\n    Console.WriteLine($\"  Type: {backup.Data.BackupType}\");\n    Console.WriteLine($\"  Completed: {backup.Data.CompletedOn}\");\n}\n\n\u002F\u002F Point-in-time restore\nMySqlFlexibleServerData restoreData = new MySqlFlexibleServerData(AzureLocation.EastUS)\n{\n    CreateMode = MySqlFlexibleServerCreateMode.PointInTimeRestore,\n    SourceServerResourceId = server.Id,\n    RestorePointInTime = DateTimeOffset.UtcNow.AddHours(-2)\n};\n\nArmOperation\u003CMySqlFlexibleServerResource> operation = await servers\n    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-mysql-restored\", restoreData);\n",[1495],{"type":51,"tag":81,"props":1496,"children":1497},{"__ignoreMap":78},[1498,1506,1514,1521,1529,1537,1545,1552,1559,1567,1575,1582,1590,1598,1606,1613,1620,1627],{"type":51,"tag":85,"props":1499,"children":1500},{"class":87,"line":88},[1501],{"type":51,"tag":85,"props":1502,"children":1503},{},[1504],{"type":57,"value":1505},"\u002F\u002F List available backups\n",{"type":51,"tag":85,"props":1507,"children":1508},{"class":87,"line":114},[1509],{"type":51,"tag":85,"props":1510,"children":1511},{},[1512],{"type":57,"value":1513},"await foreach (MySqlFlexibleServerBackupResource backup in server.GetMySqlFlexibleServerBackups())\n",{"type":51,"tag":85,"props":1515,"children":1516},{"class":87,"line":241},[1517],{"type":51,"tag":85,"props":1518,"children":1519},{},[1520],{"type":57,"value":546},{"type":51,"tag":85,"props":1522,"children":1523},{"class":87,"line":268},[1524],{"type":51,"tag":85,"props":1525,"children":1526},{},[1527],{"type":57,"value":1528},"    Console.WriteLine($\"Backup: {backup.Data.Name}\");\n",{"type":51,"tag":85,"props":1530,"children":1531},{"class":87,"line":339},[1532],{"type":51,"tag":85,"props":1533,"children":1534},{},[1535],{"type":57,"value":1536},"    Console.WriteLine($\"  Type: {backup.Data.BackupType}\");\n",{"type":51,"tag":85,"props":1538,"children":1539},{"class":87,"line":349},[1540],{"type":51,"tag":85,"props":1541,"children":1542},{},[1543],{"type":57,"value":1544},"    Console.WriteLine($\"  Completed: {backup.Data.CompletedOn}\");\n",{"type":51,"tag":85,"props":1546,"children":1547},{"class":87,"line":358},[1548],{"type":51,"tag":85,"props":1549,"children":1550},{},[1551],{"type":57,"value":1439},{"type":51,"tag":85,"props":1553,"children":1554},{"class":87,"line":367},[1555],{"type":51,"tag":85,"props":1556,"children":1557},{"emptyLinePlaceholder":343},[1558],{"type":57,"value":346},{"type":51,"tag":85,"props":1560,"children":1561},{"class":87,"line":376},[1562],{"type":51,"tag":85,"props":1563,"children":1564},{},[1565],{"type":57,"value":1566},"\u002F\u002F Point-in-time restore\n",{"type":51,"tag":85,"props":1568,"children":1569},{"class":87,"line":385},[1570],{"type":51,"tag":85,"props":1571,"children":1572},{},[1573],{"type":57,"value":1574},"MySqlFlexibleServerData restoreData = new MySqlFlexibleServerData(AzureLocation.EastUS)\n",{"type":51,"tag":85,"props":1576,"children":1577},{"class":87,"line":394},[1578],{"type":51,"tag":85,"props":1579,"children":1580},{},[1581],{"type":57,"value":546},{"type":51,"tag":85,"props":1583,"children":1584},{"class":87,"line":403},[1585],{"type":51,"tag":85,"props":1586,"children":1587},{},[1588],{"type":57,"value":1589},"    CreateMode = MySqlFlexibleServerCreateMode.PointInTimeRestore,\n",{"type":51,"tag":85,"props":1591,"children":1592},{"class":87,"line":412},[1593],{"type":51,"tag":85,"props":1594,"children":1595},{},[1596],{"type":57,"value":1597},"    SourceServerResourceId = server.Id,\n",{"type":51,"tag":85,"props":1599,"children":1600},{"class":87,"line":557},[1601],{"type":51,"tag":85,"props":1602,"children":1603},{},[1604],{"type":57,"value":1605},"    RestorePointInTime = DateTimeOffset.UtcNow.AddHours(-2)\n",{"type":51,"tag":85,"props":1607,"children":1608},{"class":87,"line":566},[1609],{"type":51,"tag":85,"props":1610,"children":1611},{},[1612],{"type":57,"value":739},{"type":51,"tag":85,"props":1614,"children":1615},{"class":87,"line":575},[1616],{"type":51,"tag":85,"props":1617,"children":1618},{"emptyLinePlaceholder":343},[1619],{"type":57,"value":346},{"type":51,"tag":85,"props":1621,"children":1622},{"class":87,"line":584},[1623],{"type":51,"tag":85,"props":1624,"children":1625},{},[1626],{"type":57,"value":756},{"type":51,"tag":85,"props":1628,"children":1629},{"class":87,"line":593},[1630],{"type":51,"tag":85,"props":1631,"children":1632},{},[1633],{"type":57,"value":1634},"    .CreateOrUpdateAsync(WaitUntil.Completed, \"my-mysql-restored\", restoreData);\n",{"type":51,"tag":442,"props":1636,"children":1638},{"id":1637},"_8-stop-and-start-server",[1639],{"type":57,"value":1640},"8. Stop and Start Server",{"type":51,"tag":73,"props":1642,"children":1644},{"className":298,"code":1643,"language":300,"meta":78,"style":78},"MySqlFlexibleServerResource server = await resourceGroup\n    .GetMySqlFlexibleServerAsync(\"my-mysql-server\");\n\n\u002F\u002F Stop server (saves costs when not in use)\nawait server.StopAsync(WaitUntil.Completed);\n\n\u002F\u002F Start server\nawait server.StartAsync(WaitUntil.Completed);\n\n\u002F\u002F Restart server\nawait server.RestartAsync(WaitUntil.Completed, new MySqlFlexibleServerRestartParameter\n{\n    RestartWithFailover = MySqlFlexibleServerEnableStatusEnum.Enabled,\n    MaxFailoverSeconds = 60\n});\n",[1645],{"type":51,"tag":81,"props":1646,"children":1647},{"__ignoreMap":78},[1648,1655,1662,1669,1677,1685,1692,1700,1708,1715,1723,1731,1738,1746,1754],{"type":51,"tag":85,"props":1649,"children":1650},{"class":87,"line":88},[1651],{"type":51,"tag":85,"props":1652,"children":1653},{},[1654],{"type":57,"value":812},{"type":51,"tag":85,"props":1656,"children":1657},{"class":87,"line":114},[1658],{"type":51,"tag":85,"props":1659,"children":1660},{},[1661],{"type":57,"value":820},{"type":51,"tag":85,"props":1663,"children":1664},{"class":87,"line":241},[1665],{"type":51,"tag":85,"props":1666,"children":1667},{"emptyLinePlaceholder":343},[1668],{"type":57,"value":346},{"type":51,"tag":85,"props":1670,"children":1671},{"class":87,"line":268},[1672],{"type":51,"tag":85,"props":1673,"children":1674},{},[1675],{"type":57,"value":1676},"\u002F\u002F Stop server (saves costs when not in use)\n",{"type":51,"tag":85,"props":1678,"children":1679},{"class":87,"line":339},[1680],{"type":51,"tag":85,"props":1681,"children":1682},{},[1683],{"type":57,"value":1684},"await server.StopAsync(WaitUntil.Completed);\n",{"type":51,"tag":85,"props":1686,"children":1687},{"class":87,"line":349},[1688],{"type":51,"tag":85,"props":1689,"children":1690},{"emptyLinePlaceholder":343},[1691],{"type":57,"value":346},{"type":51,"tag":85,"props":1693,"children":1694},{"class":87,"line":358},[1695],{"type":51,"tag":85,"props":1696,"children":1697},{},[1698],{"type":57,"value":1699},"\u002F\u002F Start server\n",{"type":51,"tag":85,"props":1701,"children":1702},{"class":87,"line":367},[1703],{"type":51,"tag":85,"props":1704,"children":1705},{},[1706],{"type":57,"value":1707},"await server.StartAsync(WaitUntil.Completed);\n",{"type":51,"tag":85,"props":1709,"children":1710},{"class":87,"line":376},[1711],{"type":51,"tag":85,"props":1712,"children":1713},{"emptyLinePlaceholder":343},[1714],{"type":57,"value":346},{"type":51,"tag":85,"props":1716,"children":1717},{"class":87,"line":385},[1718],{"type":51,"tag":85,"props":1719,"children":1720},{},[1721],{"type":57,"value":1722},"\u002F\u002F Restart server\n",{"type":51,"tag":85,"props":1724,"children":1725},{"class":87,"line":394},[1726],{"type":51,"tag":85,"props":1727,"children":1728},{},[1729],{"type":57,"value":1730},"await server.RestartAsync(WaitUntil.Completed, new MySqlFlexibleServerRestartParameter\n",{"type":51,"tag":85,"props":1732,"children":1733},{"class":87,"line":403},[1734],{"type":51,"tag":85,"props":1735,"children":1736},{},[1737],{"type":57,"value":546},{"type":51,"tag":85,"props":1739,"children":1740},{"class":87,"line":412},[1741],{"type":51,"tag":85,"props":1742,"children":1743},{},[1744],{"type":57,"value":1745},"    RestartWithFailover = MySqlFlexibleServerEnableStatusEnum.Enabled,\n",{"type":51,"tag":85,"props":1747,"children":1748},{"class":87,"line":557},[1749],{"type":51,"tag":85,"props":1750,"children":1751},{},[1752],{"type":57,"value":1753},"    MaxFailoverSeconds = 60\n",{"type":51,"tag":85,"props":1755,"children":1756},{"class":87,"line":566},[1757],{"type":51,"tag":85,"props":1758,"children":1759},{},[1760],{"type":57,"value":1761},"});\n",{"type":51,"tag":442,"props":1763,"children":1765},{"id":1764},"_9-update-server-scale",[1766],{"type":57,"value":1767},"9. Update Server (Scale)",{"type":51,"tag":73,"props":1769,"children":1771},{"className":298,"code":1770,"language":300,"meta":78,"style":78},"MySqlFlexibleServerResource server = await resourceGroup\n    .GetMySqlFlexibleServerAsync(\"my-mysql-server\");\n\nMySqlFlexibleServerPatch patch = new MySqlFlexibleServerPatch\n{\n    Sku = new MySqlFlexibleServerSku(\"Standard_D4ds_v4\", MySqlFlexibleServerSkuTier.GeneralPurpose),\n    Storage = new MySqlFlexibleServerStorage\n    {\n        StorageSizeInGB = 256,\n        Iops = 6000\n    }\n};\n\nArmOperation\u003CMySqlFlexibleServerResource> operation = await server\n    .UpdateAsync(WaitUntil.Completed, patch);\n",[1772],{"type":51,"tag":81,"props":1773,"children":1774},{"__ignoreMap":78},[1775,1782,1789,1796,1804,1811,1819,1826,1833,1841,1849,1857,1864,1871,1879],{"type":51,"tag":85,"props":1776,"children":1777},{"class":87,"line":88},[1778],{"type":51,"tag":85,"props":1779,"children":1780},{},[1781],{"type":57,"value":812},{"type":51,"tag":85,"props":1783,"children":1784},{"class":87,"line":114},[1785],{"type":51,"tag":85,"props":1786,"children":1787},{},[1788],{"type":57,"value":820},{"type":51,"tag":85,"props":1790,"children":1791},{"class":87,"line":241},[1792],{"type":51,"tag":85,"props":1793,"children":1794},{"emptyLinePlaceholder":343},[1795],{"type":57,"value":346},{"type":51,"tag":85,"props":1797,"children":1798},{"class":87,"line":268},[1799],{"type":51,"tag":85,"props":1800,"children":1801},{},[1802],{"type":57,"value":1803},"MySqlFlexibleServerPatch patch = new MySqlFlexibleServerPatch\n",{"type":51,"tag":85,"props":1805,"children":1806},{"class":87,"line":339},[1807],{"type":51,"tag":85,"props":1808,"children":1809},{},[1810],{"type":57,"value":546},{"type":51,"tag":85,"props":1812,"children":1813},{"class":87,"line":349},[1814],{"type":51,"tag":85,"props":1815,"children":1816},{},[1817],{"type":57,"value":1818},"    Sku = new MySqlFlexibleServerSku(\"Standard_D4ds_v4\", MySqlFlexibleServerSkuTier.GeneralPurpose),\n",{"type":51,"tag":85,"props":1820,"children":1821},{"class":87,"line":358},[1822],{"type":51,"tag":85,"props":1823,"children":1824},{},[1825],{"type":57,"value":590},{"type":51,"tag":85,"props":1827,"children":1828},{"class":87,"line":367},[1829],{"type":51,"tag":85,"props":1830,"children":1831},{},[1832],{"type":57,"value":599},{"type":51,"tag":85,"props":1834,"children":1835},{"class":87,"line":376},[1836],{"type":51,"tag":85,"props":1837,"children":1838},{},[1839],{"type":57,"value":1840},"        StorageSizeInGB = 256,\n",{"type":51,"tag":85,"props":1842,"children":1843},{"class":87,"line":385},[1844],{"type":51,"tag":85,"props":1845,"children":1846},{},[1847],{"type":57,"value":1848},"        Iops = 6000\n",{"type":51,"tag":85,"props":1850,"children":1851},{"class":87,"line":394},[1852],{"type":51,"tag":85,"props":1853,"children":1854},{},[1855],{"type":57,"value":1856},"    }\n",{"type":51,"tag":85,"props":1858,"children":1859},{"class":87,"line":403},[1860],{"type":51,"tag":85,"props":1861,"children":1862},{},[1863],{"type":57,"value":739},{"type":51,"tag":85,"props":1865,"children":1866},{"class":87,"line":412},[1867],{"type":51,"tag":85,"props":1868,"children":1869},{"emptyLinePlaceholder":343},[1870],{"type":57,"value":346},{"type":51,"tag":85,"props":1872,"children":1873},{"class":87,"line":557},[1874],{"type":51,"tag":85,"props":1875,"children":1876},{},[1877],{"type":57,"value":1878},"ArmOperation\u003CMySqlFlexibleServerResource> operation = await server\n",{"type":51,"tag":85,"props":1880,"children":1881},{"class":87,"line":566},[1882],{"type":51,"tag":85,"props":1883,"children":1884},{},[1885],{"type":57,"value":1886},"    .UpdateAsync(WaitUntil.Completed, patch);\n",{"type":51,"tag":442,"props":1888,"children":1890},{"id":1889},"_10-delete-server",[1891],{"type":57,"value":1892},"10. Delete Server",{"type":51,"tag":73,"props":1894,"children":1896},{"className":298,"code":1895,"language":300,"meta":78,"style":78},"MySqlFlexibleServerResource server = await resourceGroup\n    .GetMySqlFlexibleServerAsync(\"my-mysql-server\");\n\nawait server.DeleteAsync(WaitUntil.Completed);\n",[1897],{"type":51,"tag":81,"props":1898,"children":1899},{"__ignoreMap":78},[1900,1907,1914,1921],{"type":51,"tag":85,"props":1901,"children":1902},{"class":87,"line":88},[1903],{"type":51,"tag":85,"props":1904,"children":1905},{},[1906],{"type":57,"value":812},{"type":51,"tag":85,"props":1908,"children":1909},{"class":87,"line":114},[1910],{"type":51,"tag":85,"props":1911,"children":1912},{},[1913],{"type":57,"value":820},{"type":51,"tag":85,"props":1915,"children":1916},{"class":87,"line":241},[1917],{"type":51,"tag":85,"props":1918,"children":1919},{"emptyLinePlaceholder":343},[1920],{"type":57,"value":346},{"type":51,"tag":85,"props":1922,"children":1923},{"class":87,"line":268},[1924],{"type":51,"tag":85,"props":1925,"children":1926},{},[1927],{"type":57,"value":1928},"await server.DeleteAsync(WaitUntil.Completed);\n",{"type":51,"tag":66,"props":1930,"children":1932},{"id":1931},"key-types-reference",[1933],{"type":57,"value":1934},"Key Types Reference",{"type":51,"tag":1936,"props":1937,"children":1938},"table",{},[1939,1958],{"type":51,"tag":1940,"props":1941,"children":1942},"thead",{},[1943],{"type":51,"tag":1944,"props":1945,"children":1946},"tr",{},[1947,1953],{"type":51,"tag":1948,"props":1949,"children":1950},"th",{},[1951],{"type":57,"value":1952},"Type",{"type":51,"tag":1948,"props":1954,"children":1955},{},[1956],{"type":57,"value":1957},"Purpose",{"type":51,"tag":1959,"props":1960,"children":1961},"tbody",{},[1962,1980,1997,2014,2031,2048,2065,2082,2099,2116,2133,2150],{"type":51,"tag":1944,"props":1963,"children":1964},{},[1965,1975],{"type":51,"tag":1966,"props":1967,"children":1968},"td",{},[1969],{"type":51,"tag":81,"props":1970,"children":1972},{"className":1971},[],[1973],{"type":57,"value":1974},"MySqlFlexibleServerResource",{"type":51,"tag":1966,"props":1976,"children":1977},{},[1978],{"type":57,"value":1979},"Flexible Server instance",{"type":51,"tag":1944,"props":1981,"children":1982},{},[1983,1992],{"type":51,"tag":1966,"props":1984,"children":1985},{},[1986],{"type":51,"tag":81,"props":1987,"children":1989},{"className":1988},[],[1990],{"type":57,"value":1991},"MySqlFlexibleServerData",{"type":51,"tag":1966,"props":1993,"children":1994},{},[1995],{"type":57,"value":1996},"Server configuration data",{"type":51,"tag":1944,"props":1998,"children":1999},{},[2000,2009],{"type":51,"tag":1966,"props":2001,"children":2002},{},[2003],{"type":51,"tag":81,"props":2004,"children":2006},{"className":2005},[],[2007],{"type":57,"value":2008},"MySqlFlexibleServerCollection",{"type":51,"tag":1966,"props":2010,"children":2011},{},[2012],{"type":57,"value":2013},"Collection of servers",{"type":51,"tag":1944,"props":2015,"children":2016},{},[2017,2026],{"type":51,"tag":1966,"props":2018,"children":2019},{},[2020],{"type":51,"tag":81,"props":2021,"children":2023},{"className":2022},[],[2024],{"type":57,"value":2025},"MySqlFlexibleServerDatabaseResource",{"type":51,"tag":1966,"props":2027,"children":2028},{},[2029],{"type":57,"value":2030},"Database within server",{"type":51,"tag":1944,"props":2032,"children":2033},{},[2034,2043],{"type":51,"tag":1966,"props":2035,"children":2036},{},[2037],{"type":51,"tag":81,"props":2038,"children":2040},{"className":2039},[],[2041],{"type":57,"value":2042},"MySqlFlexibleServerFirewallRuleResource",{"type":51,"tag":1966,"props":2044,"children":2045},{},[2046],{"type":57,"value":2047},"IP firewall rule",{"type":51,"tag":1944,"props":2049,"children":2050},{},[2051,2060],{"type":51,"tag":1966,"props":2052,"children":2053},{},[2054],{"type":51,"tag":81,"props":2055,"children":2057},{"className":2056},[],[2058],{"type":57,"value":2059},"MySqlFlexibleServerConfigurationResource",{"type":51,"tag":1966,"props":2061,"children":2062},{},[2063],{"type":57,"value":2064},"Server parameter",{"type":51,"tag":1944,"props":2066,"children":2067},{},[2068,2077],{"type":51,"tag":1966,"props":2069,"children":2070},{},[2071],{"type":51,"tag":81,"props":2072,"children":2074},{"className":2073},[],[2075],{"type":57,"value":2076},"MySqlFlexibleServerBackupResource",{"type":51,"tag":1966,"props":2078,"children":2079},{},[2080],{"type":57,"value":2081},"Backup metadata",{"type":51,"tag":1944,"props":2083,"children":2084},{},[2085,2094],{"type":51,"tag":1966,"props":2086,"children":2087},{},[2088],{"type":51,"tag":81,"props":2089,"children":2091},{"className":2090},[],[2092],{"type":57,"value":2093},"MySqlFlexibleServerAadAdministratorResource",{"type":51,"tag":1966,"props":2095,"children":2096},{},[2097],{"type":57,"value":2098},"Entra ID admin",{"type":51,"tag":1944,"props":2100,"children":2101},{},[2102,2111],{"type":51,"tag":1966,"props":2103,"children":2104},{},[2105],{"type":51,"tag":81,"props":2106,"children":2108},{"className":2107},[],[2109],{"type":57,"value":2110},"MySqlFlexibleServerSku",{"type":51,"tag":1966,"props":2112,"children":2113},{},[2114],{"type":57,"value":2115},"SKU (compute tier + size)",{"type":51,"tag":1944,"props":2117,"children":2118},{},[2119,2128],{"type":51,"tag":1966,"props":2120,"children":2121},{},[2122],{"type":51,"tag":81,"props":2123,"children":2125},{"className":2124},[],[2126],{"type":57,"value":2127},"MySqlFlexibleServerStorage",{"type":51,"tag":1966,"props":2129,"children":2130},{},[2131],{"type":57,"value":2132},"Storage configuration",{"type":51,"tag":1944,"props":2134,"children":2135},{},[2136,2145],{"type":51,"tag":1966,"props":2137,"children":2138},{},[2139],{"type":51,"tag":81,"props":2140,"children":2142},{"className":2141},[],[2143],{"type":57,"value":2144},"MySqlFlexibleServerHighAvailability",{"type":51,"tag":1966,"props":2146,"children":2147},{},[2148],{"type":57,"value":2149},"HA configuration",{"type":51,"tag":1944,"props":2151,"children":2152},{},[2153,2162],{"type":51,"tag":1966,"props":2154,"children":2155},{},[2156],{"type":51,"tag":81,"props":2157,"children":2159},{"className":2158},[],[2160],{"type":57,"value":2161},"MySqlFlexibleServerBackupProperties",{"type":51,"tag":1966,"props":2163,"children":2164},{},[2165],{"type":57,"value":2166},"Backup settings",{"type":51,"tag":66,"props":2168,"children":2170},{"id":2169},"sku-tiers",[2171],{"type":57,"value":2172},"SKU Tiers",{"type":51,"tag":1936,"props":2174,"children":2175},{},[2176,2197],{"type":51,"tag":1940,"props":2177,"children":2178},{},[2179],{"type":51,"tag":1944,"props":2180,"children":2181},{},[2182,2187,2192],{"type":51,"tag":1948,"props":2183,"children":2184},{},[2185],{"type":57,"value":2186},"Tier",{"type":51,"tag":1948,"props":2188,"children":2189},{},[2190],{"type":57,"value":2191},"Use Case",{"type":51,"tag":1948,"props":2193,"children":2194},{},[2195],{"type":57,"value":2196},"SKU Examples",{"type":51,"tag":1959,"props":2198,"children":2199},{},[2200,2222,2244],{"type":51,"tag":1944,"props":2201,"children":2202},{},[2203,2212,2217],{"type":51,"tag":1966,"props":2204,"children":2205},{},[2206],{"type":51,"tag":81,"props":2207,"children":2209},{"className":2208},[],[2210],{"type":57,"value":2211},"Burstable",{"type":51,"tag":1966,"props":2213,"children":2214},{},[2215],{"type":57,"value":2216},"Dev\u002Ftest, light workloads",{"type":51,"tag":1966,"props":2218,"children":2219},{},[2220],{"type":57,"value":2221},"Standard_B1ms, Standard_B2s",{"type":51,"tag":1944,"props":2223,"children":2224},{},[2225,2234,2239],{"type":51,"tag":1966,"props":2226,"children":2227},{},[2228],{"type":51,"tag":81,"props":2229,"children":2231},{"className":2230},[],[2232],{"type":57,"value":2233},"GeneralPurpose",{"type":51,"tag":1966,"props":2235,"children":2236},{},[2237],{"type":57,"value":2238},"Production workloads",{"type":51,"tag":1966,"props":2240,"children":2241},{},[2242],{"type":57,"value":2243},"Standard_D2ds_v4, Standard_D4ds_v4",{"type":51,"tag":1944,"props":2245,"children":2246},{},[2247,2256,2261],{"type":51,"tag":1966,"props":2248,"children":2249},{},[2250],{"type":51,"tag":81,"props":2251,"children":2253},{"className":2252},[],[2254],{"type":57,"value":2255},"MemoryOptimized",{"type":51,"tag":1966,"props":2257,"children":2258},{},[2259],{"type":57,"value":2260},"High memory requirements",{"type":51,"tag":1966,"props":2262,"children":2263},{},[2264],{"type":57,"value":2265},"Standard_E2ds_v4, Standard_E4ds_v4",{"type":51,"tag":66,"props":2267,"children":2269},{"id":2268},"high-availability-modes",[2270],{"type":57,"value":2271},"High Availability Modes",{"type":51,"tag":1936,"props":2273,"children":2274},{},[2275,2291],{"type":51,"tag":1940,"props":2276,"children":2277},{},[2278],{"type":51,"tag":1944,"props":2279,"children":2280},{},[2281,2286],{"type":51,"tag":1948,"props":2282,"children":2283},{},[2284],{"type":57,"value":2285},"Mode",{"type":51,"tag":1948,"props":2287,"children":2288},{},[2289],{"type":57,"value":2290},"Description",{"type":51,"tag":1959,"props":2292,"children":2293},{},[2294,2311,2328],{"type":51,"tag":1944,"props":2295,"children":2296},{},[2297,2306],{"type":51,"tag":1966,"props":2298,"children":2299},{},[2300],{"type":51,"tag":81,"props":2301,"children":2303},{"className":2302},[],[2304],{"type":57,"value":2305},"Disabled",{"type":51,"tag":1966,"props":2307,"children":2308},{},[2309],{"type":57,"value":2310},"No HA (single server)",{"type":51,"tag":1944,"props":2312,"children":2313},{},[2314,2323],{"type":51,"tag":1966,"props":2315,"children":2316},{},[2317],{"type":51,"tag":81,"props":2318,"children":2320},{"className":2319},[],[2321],{"type":57,"value":2322},"SameZone",{"type":51,"tag":1966,"props":2324,"children":2325},{},[2326],{"type":57,"value":2327},"HA within same availability zone",{"type":51,"tag":1944,"props":2329,"children":2330},{},[2331,2340],{"type":51,"tag":1966,"props":2332,"children":2333},{},[2334],{"type":51,"tag":81,"props":2335,"children":2337},{"className":2336},[],[2338],{"type":57,"value":2339},"ZoneRedundant",{"type":51,"tag":1966,"props":2341,"children":2342},{},[2343],{"type":57,"value":2344},"HA across availability zones",{"type":51,"tag":66,"props":2346,"children":2348},{"id":2347},"best-practices",[2349],{"type":57,"value":2350},"Best Practices",{"type":51,"tag":2352,"props":2353,"children":2354},"ol",{},[2355,2366,2376,2386,2396,2406,2416,2426,2436,2446],{"type":51,"tag":2356,"props":2357,"children":2358},"li",{},[2359,2364],{"type":51,"tag":137,"props":2360,"children":2361},{},[2362],{"type":57,"value":2363},"Use Flexible Server",{"type":57,"value":2365}," — Single Server is deprecated",{"type":51,"tag":2356,"props":2367,"children":2368},{},[2369,2374],{"type":51,"tag":137,"props":2370,"children":2371},{},[2372],{"type":57,"value":2373},"Enable zone-redundant HA",{"type":57,"value":2375}," — For production workloads",{"type":51,"tag":2356,"props":2377,"children":2378},{},[2379,2384],{"type":51,"tag":137,"props":2380,"children":2381},{},[2382],{"type":57,"value":2383},"Use DefaultAzureCredential",{"type":57,"value":2385}," — Prefer over connection strings",{"type":51,"tag":2356,"props":2387,"children":2388},{},[2389,2394],{"type":51,"tag":137,"props":2390,"children":2391},{},[2392],{"type":57,"value":2393},"Configure Entra ID authentication",{"type":57,"value":2395}," — More secure than SQL auth",{"type":51,"tag":2356,"props":2397,"children":2398},{},[2399,2404],{"type":51,"tag":137,"props":2400,"children":2401},{},[2402],{"type":57,"value":2403},"Enable auto-grow storage",{"type":57,"value":2405}," — Prevents out-of-space issues",{"type":51,"tag":2356,"props":2407,"children":2408},{},[2409,2414],{"type":51,"tag":137,"props":2410,"children":2411},{},[2412],{"type":57,"value":2413},"Set appropriate backup retention",{"type":57,"value":2415}," — 7-35 days based on compliance",{"type":51,"tag":2356,"props":2417,"children":2418},{},[2419,2424],{"type":51,"tag":137,"props":2420,"children":2421},{},[2422],{"type":57,"value":2423},"Use private endpoints",{"type":57,"value":2425}," — For secure network access",{"type":51,"tag":2356,"props":2427,"children":2428},{},[2429,2434],{"type":51,"tag":137,"props":2430,"children":2431},{},[2432],{"type":57,"value":2433},"Tune server parameters",{"type":57,"value":2435}," — Based on workload characteristics",{"type":51,"tag":2356,"props":2437,"children":2438},{},[2439,2444],{"type":51,"tag":137,"props":2440,"children":2441},{},[2442],{"type":57,"value":2443},"Monitor with Azure Monitor",{"type":57,"value":2445}," — Enable metrics and logs",{"type":51,"tag":2356,"props":2447,"children":2448},{},[2449,2454],{"type":51,"tag":137,"props":2450,"children":2451},{},[2452],{"type":57,"value":2453},"Stop dev\u002Ftest servers",{"type":57,"value":2455}," — Save costs when not in use",{"type":51,"tag":66,"props":2457,"children":2459},{"id":2458},"error-handling",[2460],{"type":57,"value":2461},"Error Handling",{"type":51,"tag":73,"props":2463,"children":2465},{"className":298,"code":2464,"language":300,"meta":78,"style":78},"using Azure;\n\ntry\n{\n    ArmOperation\u003CMySqlFlexibleServerResource> operation = await servers\n        .CreateOrUpdateAsync(WaitUntil.Completed, \"my-mysql\", data);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"Server already exists\");\n}\ncatch (RequestFailedException ex) when (ex.Status == 400)\n{\n    Console.WriteLine($\"Invalid configuration: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"Azure error: {ex.Status} - {ex.Message}\");\n}\n",[2466],{"type":51,"tag":81,"props":2467,"children":2468},{"__ignoreMap":78},[2469,2477,2484,2492,2499,2507,2515,2522,2530,2537,2545,2552,2560,2567,2575,2582,2590,2597,2605],{"type":51,"tag":85,"props":2470,"children":2471},{"class":87,"line":88},[2472],{"type":51,"tag":85,"props":2473,"children":2474},{},[2475],{"type":57,"value":2476},"using Azure;\n",{"type":51,"tag":85,"props":2478,"children":2479},{"class":87,"line":114},[2480],{"type":51,"tag":85,"props":2481,"children":2482},{"emptyLinePlaceholder":343},[2483],{"type":57,"value":346},{"type":51,"tag":85,"props":2485,"children":2486},{"class":87,"line":241},[2487],{"type":51,"tag":85,"props":2488,"children":2489},{},[2490],{"type":57,"value":2491},"try\n",{"type":51,"tag":85,"props":2493,"children":2494},{"class":87,"line":268},[2495],{"type":51,"tag":85,"props":2496,"children":2497},{},[2498],{"type":57,"value":546},{"type":51,"tag":85,"props":2500,"children":2501},{"class":87,"line":339},[2502],{"type":51,"tag":85,"props":2503,"children":2504},{},[2505],{"type":57,"value":2506},"    ArmOperation\u003CMySqlFlexibleServerResource> operation = await servers\n",{"type":51,"tag":85,"props":2508,"children":2509},{"class":87,"line":349},[2510],{"type":51,"tag":85,"props":2511,"children":2512},{},[2513],{"type":57,"value":2514},"        .CreateOrUpdateAsync(WaitUntil.Completed, \"my-mysql\", data);\n",{"type":51,"tag":85,"props":2516,"children":2517},{"class":87,"line":358},[2518],{"type":51,"tag":85,"props":2519,"children":2520},{},[2521],{"type":57,"value":1439},{"type":51,"tag":85,"props":2523,"children":2524},{"class":87,"line":367},[2525],{"type":51,"tag":85,"props":2526,"children":2527},{},[2528],{"type":57,"value":2529},"catch (RequestFailedException ex) when (ex.Status == 409)\n",{"type":51,"tag":85,"props":2531,"children":2532},{"class":87,"line":376},[2533],{"type":51,"tag":85,"props":2534,"children":2535},{},[2536],{"type":57,"value":546},{"type":51,"tag":85,"props":2538,"children":2539},{"class":87,"line":385},[2540],{"type":51,"tag":85,"props":2541,"children":2542},{},[2543],{"type":57,"value":2544},"    Console.WriteLine(\"Server already exists\");\n",{"type":51,"tag":85,"props":2546,"children":2547},{"class":87,"line":394},[2548],{"type":51,"tag":85,"props":2549,"children":2550},{},[2551],{"type":57,"value":1439},{"type":51,"tag":85,"props":2553,"children":2554},{"class":87,"line":403},[2555],{"type":51,"tag":85,"props":2556,"children":2557},{},[2558],{"type":57,"value":2559},"catch (RequestFailedException ex) when (ex.Status == 400)\n",{"type":51,"tag":85,"props":2561,"children":2562},{"class":87,"line":412},[2563],{"type":51,"tag":85,"props":2564,"children":2565},{},[2566],{"type":57,"value":546},{"type":51,"tag":85,"props":2568,"children":2569},{"class":87,"line":557},[2570],{"type":51,"tag":85,"props":2571,"children":2572},{},[2573],{"type":57,"value":2574},"    Console.WriteLine($\"Invalid configuration: {ex.Message}\");\n",{"type":51,"tag":85,"props":2576,"children":2577},{"class":87,"line":566},[2578],{"type":51,"tag":85,"props":2579,"children":2580},{},[2581],{"type":57,"value":1439},{"type":51,"tag":85,"props":2583,"children":2584},{"class":87,"line":575},[2585],{"type":51,"tag":85,"props":2586,"children":2587},{},[2588],{"type":57,"value":2589},"catch (RequestFailedException ex)\n",{"type":51,"tag":85,"props":2591,"children":2592},{"class":87,"line":584},[2593],{"type":51,"tag":85,"props":2594,"children":2595},{},[2596],{"type":57,"value":546},{"type":51,"tag":85,"props":2598,"children":2599},{"class":87,"line":593},[2600],{"type":51,"tag":85,"props":2601,"children":2602},{},[2603],{"type":57,"value":2604},"    Console.WriteLine($\"Azure error: {ex.Status} - {ex.Message}\");\n",{"type":51,"tag":85,"props":2606,"children":2607},{"class":87,"line":602},[2608],{"type":51,"tag":85,"props":2609,"children":2610},{},[2611],{"type":57,"value":1439},{"type":51,"tag":66,"props":2613,"children":2615},{"id":2614},"connection-string",[2616],{"type":57,"value":2617},"Connection String",{"type":51,"tag":60,"props":2619,"children":2620},{},[2621],{"type":57,"value":2622},"After creating the server, connect using:",{"type":51,"tag":73,"props":2624,"children":2626},{"className":298,"code":2625,"language":300,"meta":78,"style":78},"\u002F\u002F ADO.NET connection string\nstring connectionString = $\"Server={server.Data.FullyQualifiedDomainName};\" +\n    \"Database=myappdb;\" +\n    \"User Id=mysqladmin;\" +\n    \"Password=YourSecurePassword123!;\" +\n    \"SslMode=Required;\";\n\n\u002F\u002F With Entra ID token (recommended)\nvar credential = new DefaultAzureCredential();\nvar token = await credential.GetTokenAsync(\n    new TokenRequestContext(new[] { \"https:\u002F\u002Fossrdbms-aad.database.windows.net\u002F.default\" }));\n\nstring connectionString = $\"Server={server.Data.FullyQualifiedDomainName};\" +\n    \"Database=myappdb;\" +\n    $\"User Id=aad-admin@contoso.com;\" +\n    $\"Password={token.Token};\" +\n    \"SslMode=Required;\";\n",[2627],{"type":51,"tag":81,"props":2628,"children":2629},{"__ignoreMap":78},[2630,2638,2646,2654,2662,2670,2678,2685,2693,2701,2709,2717,2724,2731,2738,2746,2754],{"type":51,"tag":85,"props":2631,"children":2632},{"class":87,"line":88},[2633],{"type":51,"tag":85,"props":2634,"children":2635},{},[2636],{"type":57,"value":2637},"\u002F\u002F ADO.NET connection string\n",{"type":51,"tag":85,"props":2639,"children":2640},{"class":87,"line":114},[2641],{"type":51,"tag":85,"props":2642,"children":2643},{},[2644],{"type":57,"value":2645},"string connectionString = $\"Server={server.Data.FullyQualifiedDomainName};\" +\n",{"type":51,"tag":85,"props":2647,"children":2648},{"class":87,"line":241},[2649],{"type":51,"tag":85,"props":2650,"children":2651},{},[2652],{"type":57,"value":2653},"    \"Database=myappdb;\" +\n",{"type":51,"tag":85,"props":2655,"children":2656},{"class":87,"line":268},[2657],{"type":51,"tag":85,"props":2658,"children":2659},{},[2660],{"type":57,"value":2661},"    \"User Id=mysqladmin;\" +\n",{"type":51,"tag":85,"props":2663,"children":2664},{"class":87,"line":339},[2665],{"type":51,"tag":85,"props":2666,"children":2667},{},[2668],{"type":57,"value":2669},"    \"Password=YourSecurePassword123!;\" +\n",{"type":51,"tag":85,"props":2671,"children":2672},{"class":87,"line":349},[2673],{"type":51,"tag":85,"props":2674,"children":2675},{},[2676],{"type":57,"value":2677},"    \"SslMode=Required;\";\n",{"type":51,"tag":85,"props":2679,"children":2680},{"class":87,"line":358},[2681],{"type":51,"tag":85,"props":2682,"children":2683},{"emptyLinePlaceholder":343},[2684],{"type":57,"value":346},{"type":51,"tag":85,"props":2686,"children":2687},{"class":87,"line":367},[2688],{"type":51,"tag":85,"props":2689,"children":2690},{},[2691],{"type":57,"value":2692},"\u002F\u002F With Entra ID token (recommended)\n",{"type":51,"tag":85,"props":2694,"children":2695},{"class":87,"line":376},[2696],{"type":51,"tag":85,"props":2697,"children":2698},{},[2699],{"type":57,"value":2700},"var credential = new DefaultAzureCredential();\n",{"type":51,"tag":85,"props":2702,"children":2703},{"class":87,"line":385},[2704],{"type":51,"tag":85,"props":2705,"children":2706},{},[2707],{"type":57,"value":2708},"var token = await credential.GetTokenAsync(\n",{"type":51,"tag":85,"props":2710,"children":2711},{"class":87,"line":394},[2712],{"type":51,"tag":85,"props":2713,"children":2714},{},[2715],{"type":57,"value":2716},"    new TokenRequestContext(new[] { \"https:\u002F\u002Fossrdbms-aad.database.windows.net\u002F.default\" }));\n",{"type":51,"tag":85,"props":2718,"children":2719},{"class":87,"line":403},[2720],{"type":51,"tag":85,"props":2721,"children":2722},{"emptyLinePlaceholder":343},[2723],{"type":57,"value":346},{"type":51,"tag":85,"props":2725,"children":2726},{"class":87,"line":412},[2727],{"type":51,"tag":85,"props":2728,"children":2729},{},[2730],{"type":57,"value":2645},{"type":51,"tag":85,"props":2732,"children":2733},{"class":87,"line":557},[2734],{"type":51,"tag":85,"props":2735,"children":2736},{},[2737],{"type":57,"value":2653},{"type":51,"tag":85,"props":2739,"children":2740},{"class":87,"line":566},[2741],{"type":51,"tag":85,"props":2742,"children":2743},{},[2744],{"type":57,"value":2745},"    $\"User Id=aad-admin@contoso.com;\" +\n",{"type":51,"tag":85,"props":2747,"children":2748},{"class":87,"line":575},[2749],{"type":51,"tag":85,"props":2750,"children":2751},{},[2752],{"type":57,"value":2753},"    $\"Password={token.Token};\" +\n",{"type":51,"tag":85,"props":2755,"children":2756},{"class":87,"line":584},[2757],{"type":51,"tag":85,"props":2758,"children":2759},{},[2760],{"type":57,"value":2677},{"type":51,"tag":66,"props":2762,"children":2764},{"id":2763},"related-sdks",[2765],{"type":57,"value":2766},"Related SDKs",{"type":51,"tag":1936,"props":2768,"children":2769},{},[2770,2790],{"type":51,"tag":1940,"props":2771,"children":2772},{},[2773],{"type":51,"tag":1944,"props":2774,"children":2775},{},[2776,2781,2785],{"type":51,"tag":1948,"props":2777,"children":2778},{},[2779],{"type":57,"value":2780},"SDK",{"type":51,"tag":1948,"props":2782,"children":2783},{},[2784],{"type":57,"value":1957},{"type":51,"tag":1948,"props":2786,"children":2787},{},[2788],{"type":57,"value":2789},"Install",{"type":51,"tag":1959,"props":2791,"children":2792},{},[2793,2818,2844],{"type":51,"tag":1944,"props":2794,"children":2795},{},[2796,2804,2809],{"type":51,"tag":1966,"props":2797,"children":2798},{},[2799],{"type":51,"tag":81,"props":2800,"children":2802},{"className":2801},[],[2803],{"type":57,"value":46},{"type":51,"tag":1966,"props":2805,"children":2806},{},[2807],{"type":57,"value":2808},"MySQL management (this SDK)",{"type":51,"tag":1966,"props":2810,"children":2811},{},[2812],{"type":51,"tag":81,"props":2813,"children":2815},{"className":2814},[],[2816],{"type":57,"value":2817},"dotnet add package Azure.ResourceManager.MySql",{"type":51,"tag":1944,"props":2819,"children":2820},{},[2821,2830,2835],{"type":51,"tag":1966,"props":2822,"children":2823},{},[2824],{"type":51,"tag":81,"props":2825,"children":2827},{"className":2826},[],[2828],{"type":57,"value":2829},"Azure.ResourceManager.PostgreSql",{"type":51,"tag":1966,"props":2831,"children":2832},{},[2833],{"type":57,"value":2834},"PostgreSQL management",{"type":51,"tag":1966,"props":2836,"children":2837},{},[2838],{"type":51,"tag":81,"props":2839,"children":2841},{"className":2840},[],[2842],{"type":57,"value":2843},"dotnet add package Azure.ResourceManager.PostgreSql",{"type":51,"tag":1944,"props":2845,"children":2846},{},[2847,2856,2861],{"type":51,"tag":1966,"props":2848,"children":2849},{},[2850],{"type":51,"tag":81,"props":2851,"children":2853},{"className":2852},[],[2854],{"type":57,"value":2855},"MySqlConnector",{"type":51,"tag":1966,"props":2857,"children":2858},{},[2859],{"type":57,"value":2860},"MySQL data access",{"type":51,"tag":1966,"props":2862,"children":2863},{},[2864],{"type":51,"tag":81,"props":2865,"children":2867},{"className":2866},[],[2868],{"type":57,"value":2869},"dotnet add package MySqlConnector",{"type":51,"tag":66,"props":2871,"children":2873},{"id":2872},"reference-links",[2874],{"type":57,"value":2875},"Reference Links",{"type":51,"tag":1936,"props":2877,"children":2878},{},[2879,2895],{"type":51,"tag":1940,"props":2880,"children":2881},{},[2882],{"type":51,"tag":1944,"props":2883,"children":2884},{},[2885,2890],{"type":51,"tag":1948,"props":2886,"children":2887},{},[2888],{"type":57,"value":2889},"Resource",{"type":51,"tag":1948,"props":2891,"children":2892},{},[2893],{"type":57,"value":2894},"URL",{"type":51,"tag":1959,"props":2896,"children":2897},{},[2898,2917,2934,2951],{"type":51,"tag":1944,"props":2899,"children":2900},{},[2901,2906],{"type":51,"tag":1966,"props":2902,"children":2903},{},[2904],{"type":57,"value":2905},"NuGet Package",{"type":51,"tag":1966,"props":2907,"children":2908},{},[2909],{"type":51,"tag":2910,"props":2911,"children":2915},"a",{"href":2912,"rel":2913},"https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAzure.ResourceManager.MySql",[2914],"nofollow",[2916],{"type":57,"value":2912},{"type":51,"tag":1944,"props":2918,"children":2919},{},[2920,2925],{"type":51,"tag":1966,"props":2921,"children":2922},{},[2923],{"type":57,"value":2924},"API Reference",{"type":51,"tag":1966,"props":2926,"children":2927},{},[2928],{"type":51,"tag":2910,"props":2929,"children":2932},{"href":2930,"rel":2931},"https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Fazure.resourcemanager.mysql",[2914],[2933],{"type":57,"value":2930},{"type":51,"tag":1944,"props":2935,"children":2936},{},[2937,2942],{"type":51,"tag":1966,"props":2938,"children":2939},{},[2940],{"type":57,"value":2941},"Product Documentation",{"type":51,"tag":1966,"props":2943,"children":2944},{},[2945],{"type":51,"tag":2910,"props":2946,"children":2949},{"href":2947,"rel":2948},"https:\u002F\u002Flearn.microsoft.com\u002Fazure\u002Fmysql\u002Fflexible-server\u002F",[2914],[2950],{"type":57,"value":2947},{"type":51,"tag":1944,"props":2952,"children":2953},{},[2954,2959],{"type":51,"tag":1966,"props":2955,"children":2956},{},[2957],{"type":57,"value":2958},"GitHub Source",{"type":51,"tag":1966,"props":2960,"children":2961},{},[2962],{"type":51,"tag":2910,"props":2963,"children":2966},{"href":2964,"rel":2965},"https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fmysql\u002FAzure.ResourceManager.MySql",[2914],[2967],{"type":57,"value":2964},{"type":51,"tag":2969,"props":2970,"children":2971},"style",{},[2972],{"type":57,"value":2973},"html .light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html.light .shiki span {color: var(--shiki-light);background: var(--shiki-light-bg);font-style: var(--shiki-light-font-style);font-weight: var(--shiki-light-font-weight);text-decoration: var(--shiki-light-text-decoration);}html .default .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .shiki span {color: var(--shiki-default);background: var(--shiki-default-bg);font-style: var(--shiki-default-font-style);font-weight: var(--shiki-default-font-weight);text-decoration: var(--shiki-default-text-decoration);}html .dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}html.dark .shiki span {color: var(--shiki-dark);background: var(--shiki-dark-bg);font-style: var(--shiki-dark-font-style);font-weight: var(--shiki-dark-font-weight);text-decoration: var(--shiki-dark-text-decoration);}",{"items":2975,"total":3161},[2976,2998,3012,3033,3048,3065,3076,3089,3104,3119,3136,3149],{"slug":2977,"name":2977,"fn":2978,"description":2979,"org":2980,"tags":2981,"stars":2995,"repoUrl":2996,"updatedAt":2997},"rushstack-best-practices","manage Rush monorepos with best practices","Provides best practices and guidance for working with Rush monorepos. Use when the user is working in a Rush-based repository, asks about Rush commands (install, update, build, rebuild), needs help with project selection, dependency management, build caching, subspace configuration, or troubleshooting Rush-specific issues.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2982,2985,2988,2989,2992],{"name":2983,"slug":2984,"type":15},"Engineering","engineering",{"name":2986,"slug":2987,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":2990,"slug":2991,"type":15},"Project Management","project-management",{"name":2993,"slug":2994,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":2999,"name":2999,"fn":3000,"description":3001,"org":3002,"tags":3003,"stars":25,"repoUrl":26,"updatedAt":3011},"azure-ai-agents-persistent-dotnet","build AI agents with Azure .NET SDK","Azure AI Agents Persistent SDK for .NET. Low-level SDK for creating and managing AI agents with threads, messages, runs, and tools. Use for agent CRUD, conversation threads, streaming responses, function calling, file search, and code interpreter. Triggers: \"PersistentAgentsClient\", \"persistent agents\", \"agent threads\", \"agent runs\", \"streaming agents\", \"function calling agents .NET\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3004,3005,3007,3008],{"name":17,"slug":18,"type":15},{"name":3006,"slug":32,"type":15},"Agents",{"name":13,"slug":14,"type":15},{"name":3009,"slug":3010,"type":15},"LLM","llm","2026-07-03T16:32:10.297433",{"slug":3013,"name":3013,"fn":3014,"description":3015,"org":3016,"tags":3017,"stars":25,"repoUrl":26,"updatedAt":3032},"azure-ai-anomalydetector-java","build anomaly detection applications with Java","Build anomaly detection applications with Azure AI Anomaly Detector SDK for Java. Use when implementing univariate\u002Fmultivariate anomaly detection, time-series analysis, or AI-powered monitoring.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3018,3021,3022,3025,3028,3029],{"name":3019,"slug":3020,"type":15},"Analytics","analytics",{"name":13,"slug":14,"type":15},{"name":3023,"slug":3024,"type":15},"Data Analysis","data-analysis",{"name":3026,"slug":3027,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":3030,"slug":3031,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":3034,"name":3034,"fn":3035,"description":3036,"org":3037,"tags":3038,"stars":25,"repoUrl":26,"updatedAt":3047},"azure-ai-contentsafety-java","build content moderation applications with Azure AI","Build content moderation applications with Azure AI Content Safety SDK for Java. Use when implementing text\u002Fimage analysis, blocklist management, or harm detection for hate, violence, sexual content, and self-harm.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3039,3042,3043,3044],{"name":3040,"slug":3041,"type":15},"AI Infrastructure","ai-infrastructure",{"name":13,"slug":14,"type":15},{"name":3026,"slug":3027,"type":15},{"name":3045,"slug":3046,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":3049,"name":3049,"fn":3050,"description":3051,"org":3052,"tags":3053,"stars":25,"repoUrl":26,"updatedAt":3064},"azure-ai-contentsafety-py","detect harmful content with Azure AI Content Safety","Azure AI Content Safety SDK for Python. Use for detecting harmful content in text and images with multi-severity classification.\nTriggers: \"azure-ai-contentsafety\", \"ContentSafetyClient\", \"content moderation\", \"harmful content\", \"text analysis\", \"image analysis\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3054,3055,3058,3059,3060,3063],{"name":13,"slug":14,"type":15},{"name":3056,"slug":3057,"type":15},"Compliance","compliance",{"name":3009,"slug":3010,"type":15},{"name":9,"slug":8,"type":15},{"name":3061,"slug":3062,"type":15},"Python","python",{"name":3045,"slug":3046,"type":15},"2026-07-18T05:14:23.017504",{"slug":3066,"name":3066,"fn":3067,"description":3068,"org":3069,"tags":3070,"stars":25,"repoUrl":26,"updatedAt":3075},"azure-ai-language-conversations-py","implement conversational language understanding with Python","Implement Conversational Language Understanding (CLU) using the azure-ai-language-conversations Python SDK. Use when working with ConversationAnalysisClient to analyze conversation intent and entities, building NLP features, or integrating language understanding into applications.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3071,3072,3073,3074],{"name":3019,"slug":3020,"type":15},{"name":13,"slug":14,"type":15},{"name":3009,"slug":3010,"type":15},{"name":3061,"slug":3062,"type":15},"2026-07-31T05:54:29.068751",{"slug":3077,"name":3077,"fn":3078,"description":3079,"org":3080,"tags":3081,"stars":25,"repoUrl":26,"updatedAt":3088},"azure-ai-translation-text-py","translate text using Azure AI services","Azure AI Text Translation SDK for real-time text translation, transliteration, language detection, and dictionary lookup. Use for translating text content in applications.\nTriggers: \"text translation\", \"translator\", \"translate text\", \"transliterate\", \"TextTranslationClient\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3082,3085,3086,3087],{"name":3083,"slug":3084,"type":15},"API Development","api-development",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":3061,"slug":3062,"type":15},"2026-07-18T05:14:16.988376",{"slug":3090,"name":3090,"fn":3091,"description":3092,"org":3093,"tags":3094,"stars":25,"repoUrl":26,"updatedAt":3103},"azure-ai-vision-imageanalysis-py","analyze images with Azure AI Vision","Azure AI Vision Image Analysis SDK for captions, tags, objects, OCR, people detection, and smart cropping. Use for computer vision and image understanding tasks.\nTriggers: \"image analysis\", \"computer vision\", \"OCR\", \"object detection\", \"ImageAnalysisClient\", \"image caption\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3095,3096,3099,3102],{"name":13,"slug":14,"type":15},{"name":3097,"slug":3098,"type":15},"Computer Vision","computer-vision",{"name":3100,"slug":3101,"type":15},"Images","images",{"name":3061,"slug":3062,"type":15},"2026-07-18T05:14:18.007737",{"slug":3105,"name":3105,"fn":3106,"description":3107,"org":3108,"tags":3109,"stars":25,"repoUrl":26,"updatedAt":3118},"azure-appconfiguration-java","manage configuration with Azure App Configuration","Azure App Configuration SDK for Java. Centralized application configuration management with key-value settings, feature flags, and snapshots.\nTriggers: \"ConfigurationClient java\", \"app configuration java\", \"feature flag java\", \"configuration setting java\", \"azure config java\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3110,3111,3114,3117],{"name":13,"slug":14,"type":15},{"name":3112,"slug":3113,"type":15},"Configuration","configuration",{"name":3115,"slug":3116,"type":15},"Feature Flags","feature-flags",{"name":3026,"slug":3027,"type":15},"2026-07-03T16:32:01.278468",{"slug":3120,"name":3120,"fn":3121,"description":3122,"org":3123,"tags":3124,"stars":25,"repoUrl":26,"updatedAt":3135},"azure-cosmos-rust","build applications with Azure Cosmos DB","Azure Cosmos DB library for Rust (NoSQL API). Document CRUD, containers, and globally distributed data.\nTriggers: \"cosmos db rust\", \"CosmosClient rust\", \"document crud rust\", \"NoSQL rust\", \"partition key rust\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3125,3128,3129,3132],{"name":3126,"slug":3127,"type":15},"Cosmos DB","cosmos-db",{"name":23,"slug":24,"type":15},{"name":3130,"slug":3131,"type":15},"NoSQL","nosql",{"name":3133,"slug":3134,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":3137,"name":3137,"fn":3121,"description":3138,"org":3139,"tags":3140,"stars":25,"repoUrl":26,"updatedAt":3148},"azure-cosmos-ts","Azure Cosmos DB JavaScript\u002FTypeScript SDK (@azure\u002Fcosmos) for data plane operations. Use for CRUD operations on documents, queries, bulk operations, and container management. Triggers: \"Cosmos DB\", \"@azure\u002Fcosmos\", \"CosmosClient\", \"document CRUD\", \"NoSQL queries\", \"bulk operations\", \"partition key\", \"container.items\".\n",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3141,3142,3143,3144,3145],{"name":3126,"slug":3127,"type":15},{"name":23,"slug":24,"type":15},{"name":9,"slug":8,"type":15},{"name":3130,"slug":3131,"type":15},{"name":3146,"slug":3147,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":3150,"name":3150,"fn":3151,"description":3152,"org":3153,"tags":3154,"stars":25,"repoUrl":26,"updatedAt":3160},"azure-data-tables-java","build table storage applications with Java","Build table storage applications with Azure Tables SDK for Java. Use when working with Azure Table Storage or Cosmos DB Table API for NoSQL key-value data, schemaless storage, or structured data at scale.",{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3155,3156,3157,3158,3159],{"name":13,"slug":14,"type":15},{"name":3126,"slug":3127,"type":15},{"name":23,"slug":24,"type":15},{"name":3026,"slug":3027,"type":15},{"name":3130,"slug":3131,"type":15},"2026-05-13T06:14:17.582229",267,{"items":3163,"total":768},[3164,3171,3180,3187,3196,3203,3210],{"slug":2999,"name":2999,"fn":3000,"description":3001,"org":3165,"tags":3166,"stars":25,"repoUrl":26,"updatedAt":3011},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3167,3168,3169,3170],{"name":17,"slug":18,"type":15},{"name":3006,"slug":32,"type":15},{"name":13,"slug":14,"type":15},{"name":3009,"slug":3010,"type":15},{"slug":3013,"name":3013,"fn":3014,"description":3015,"org":3172,"tags":3173,"stars":25,"repoUrl":26,"updatedAt":3032},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3174,3175,3176,3177,3178,3179],{"name":3019,"slug":3020,"type":15},{"name":13,"slug":14,"type":15},{"name":3023,"slug":3024,"type":15},{"name":3026,"slug":3027,"type":15},{"name":9,"slug":8,"type":15},{"name":3030,"slug":3031,"type":15},{"slug":3034,"name":3034,"fn":3035,"description":3036,"org":3181,"tags":3182,"stars":25,"repoUrl":26,"updatedAt":3047},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3183,3184,3185,3186],{"name":3040,"slug":3041,"type":15},{"name":13,"slug":14,"type":15},{"name":3026,"slug":3027,"type":15},{"name":3045,"slug":3046,"type":15},{"slug":3049,"name":3049,"fn":3050,"description":3051,"org":3188,"tags":3189,"stars":25,"repoUrl":26,"updatedAt":3064},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3190,3191,3192,3193,3194,3195],{"name":13,"slug":14,"type":15},{"name":3056,"slug":3057,"type":15},{"name":3009,"slug":3010,"type":15},{"name":9,"slug":8,"type":15},{"name":3061,"slug":3062,"type":15},{"name":3045,"slug":3046,"type":15},{"slug":3066,"name":3066,"fn":3067,"description":3068,"org":3197,"tags":3198,"stars":25,"repoUrl":26,"updatedAt":3075},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3199,3200,3201,3202],{"name":3019,"slug":3020,"type":15},{"name":13,"slug":14,"type":15},{"name":3009,"slug":3010,"type":15},{"name":3061,"slug":3062,"type":15},{"slug":3077,"name":3077,"fn":3078,"description":3079,"org":3204,"tags":3205,"stars":25,"repoUrl":26,"updatedAt":3088},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3206,3207,3208,3209],{"name":3083,"slug":3084,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":3061,"slug":3062,"type":15},{"slug":3090,"name":3090,"fn":3091,"description":3092,"org":3211,"tags":3212,"stars":25,"repoUrl":26,"updatedAt":3103},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[3213,3214,3215,3216],{"name":13,"slug":14,"type":15},{"name":3097,"slug":3098,"type":15},{"name":3100,"slug":3101,"type":15},{"name":3061,"slug":3062,"type":15}]