[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill-microsoft-azure-resource-manager-sql-dotnet":3,"mdc-272m65-key":42,"related-repo-microsoft-azure-resource-manager-sql-dotnet":2618,"related-org-microsoft-azure-resource-manager-sql-dotnet":2727},{"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-sql-dotnet","manage Azure SQL resources in .NET","Azure Resource Manager SDK for Azure SQL in .NET. Use for MANAGEMENT PLANE operations: creating\u002Fmanaging SQL servers, databases, elastic pools, firewall rules, and failover groups via Azure Resource Manager. NOT for data plane operations (executing queries) - use Microsoft.Data.SqlClient for that. Triggers: \"SQL server\", \"create SQL database\", \"manage SQL resources\", \"ARM SQL\", \"SqlServerResource\", \"provision Azure SQL\", \"elastic pool\", \"firewall rule\".\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},"Database","database",{"name":23,"slug":24,"type":15},"SQL","sql",2804,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Fskills","2026-07-03T16:32:11.564521","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-sql-dotnet","---\nname: azure-resource-manager-sql-dotnet\ndescription: |\n  Azure Resource Manager SDK for Azure SQL in .NET. Use for MANAGEMENT PLANE operations: creating\u002Fmanaging SQL servers, databases, elastic pools, firewall rules, and failover groups via Azure Resource Manager. NOT for data plane operations (executing queries) - use Microsoft.Data.SqlClient for that. Triggers: \"SQL server\", \"create SQL database\", \"manage SQL resources\", \"ARM SQL\", \"SqlServerResource\", \"provision Azure SQL\", \"elastic pool\", \"firewall rule\".\nlicense: MIT\nmetadata:\n  author: Microsoft\n  version: \"1.0.0\"\n  package: Azure.ResourceManager.Sql\n---\n\n# Azure.ResourceManager.Sql (.NET)\n\nManagement plane SDK for provisioning and managing Azure SQL resources via Azure Resource Manager.\n\n> **⚠️ Management vs Data Plane**\n> - **This SDK (Azure.ResourceManager.Sql)**: Create servers, databases, elastic pools, configure firewall rules, manage failover groups\n> - **Data Plane SDK (Microsoft.Data.SqlClient)**: Execute queries, stored procedures, manage connections\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.Sql\ndotnet add package Azure.Identity\n```\n\n**Current Versions**: Stable v1.3.0, Preview v1.4.0-beta.3\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=\u003Cyour-subscription-id>  # Required: Azure subscription ID\nAZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production\nAZURE_TENANT_ID=\u003Ctenant-id>  # For service principal auth (optional)\nAZURE_CLIENT_ID=\u003Cclient-id>  # For service principal auth (optional)\nAZURE_CLIENT_SECRET=\u003Cclient-secret>  # For service principal auth (optional)\n```\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.Sql;\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();\nvar armClient = new ArmClient(credential);\n\n\u002F\u002F Get subscription\nvar subscriptionId = Environment.GetEnvironmentVariable(\"AZURE_SUBSCRIPTION_ID\");\nvar subscription = armClient.GetSubscriptionResource(\n    new ResourceIdentifier($\"\u002Fsubscriptions\u002F{subscriptionId}\"));\n```\n\n## Resource Hierarchy\n\n```\nArmClient\n└── SubscriptionResource\n    └── ResourceGroupResource\n        └── SqlServerResource\n            ├── SqlDatabaseResource\n            ├── ElasticPoolResource\n            │   └── ElasticPoolDatabaseResource\n            ├── SqlFirewallRuleResource\n            ├── FailoverGroupResource\n            ├── ServerBlobAuditingPolicyResource\n            ├── EncryptionProtectorResource\n            └── VirtualNetworkRuleResource\n```\n\n## Core Workflow\n\n### 1. Create SQL Server\n\n```csharp\nusing Azure.ResourceManager.Sql;\nusing Azure.ResourceManager.Sql.Models;\n\n\u002F\u002F Get resource group\nvar resourceGroup = await subscription\n    .GetResourceGroupAsync(\"my-resource-group\");\n\n\u002F\u002F Define server\nvar serverData = new SqlServerData(AzureLocation.EastUS)\n{\n    AdministratorLogin = \"sqladmin\",\n    AdministratorLoginPassword = \"YourSecurePassword123!\",\n    Version = \"12.0\",\n    MinimalTlsVersion = SqlMinimalTlsVersion.Tls1_2,\n    PublicNetworkAccess = ServerNetworkAccessFlag.Enabled\n};\n\n\u002F\u002F Create server (long-running operation)\nvar serverCollection = resourceGroup.Value.GetSqlServers();\nvar operation = await serverCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-sql-server\",\n    serverData);\n\nSqlServerResource server = operation.Value;\n```\n\n### 2. Create SQL Database\n\n```csharp\nvar databaseData = new SqlDatabaseData(AzureLocation.EastUS)\n{\n    Sku = new SqlSku(\"S0\") { Tier = \"Standard\" },\n    MaxSizeBytes = 2L * 1024 * 1024 * 1024, \u002F\u002F 2 GB\n    Collation = \"SQL_Latin1_General_CP1_CI_AS\",\n    RequestedBackupStorageRedundancy = SqlBackupStorageRedundancy.Local\n};\n\nvar databaseCollection = server.GetSqlDatabases();\nvar dbOperation = await databaseCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-database\",\n    databaseData);\n\nSqlDatabaseResource database = dbOperation.Value;\n```\n\n### 3. Create Elastic Pool\n\n```csharp\nvar poolData = new ElasticPoolData(AzureLocation.EastUS)\n{\n    Sku = new SqlSku(\"StandardPool\")\n    {\n        Tier = \"Standard\",\n        Capacity = 100 \u002F\u002F 100 eDTUs\n    },\n    PerDatabaseSettings = new ElasticPoolPerDatabaseSettings\n    {\n        MinCapacity = 0,\n        MaxCapacity = 100\n    }\n};\n\nvar poolCollection = server.GetElasticPools();\nvar poolOperation = await poolCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-elastic-pool\",\n    poolData);\n\nElasticPoolResource pool = poolOperation.Value;\n```\n\n### 4. Add Database to Elastic Pool\n\n```csharp\nvar databaseData = new SqlDatabaseData(AzureLocation.EastUS)\n{\n    ElasticPoolId = pool.Id\n};\n\nawait databaseCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"pooled-database\",\n    databaseData);\n```\n\n### 5. Configure Firewall Rules\n\n```csharp\n\u002F\u002F Allow Azure services\nvar azureServicesRule = new SqlFirewallRuleData\n{\n    StartIPAddress = \"0.0.0.0\",\n    EndIPAddress = \"0.0.0.0\"\n};\n\nvar firewallCollection = server.GetSqlFirewallRules();\nawait firewallCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"AllowAzureServices\",\n    azureServicesRule);\n\n\u002F\u002F Allow specific IP range\nvar clientRule = new SqlFirewallRuleData\n{\n    StartIPAddress = \"203.0.113.0\",\n    EndIPAddress = \"203.0.113.255\"\n};\n\nawait firewallCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"AllowClientIPs\",\n    clientRule);\n```\n\n### 6. List Resources\n\n```csharp\n\u002F\u002F List all servers in subscription\nawait foreach (var srv in subscription.GetSqlServersAsync())\n{\n    Console.WriteLine($\"Server: {srv.Data.Name} in {srv.Data.Location}\");\n}\n\n\u002F\u002F List databases in a server\nawait foreach (var db in server.GetSqlDatabases())\n{\n    Console.WriteLine($\"Database: {db.Data.Name}, SKU: {db.Data.Sku?.Name}\");\n}\n\n\u002F\u002F List elastic pools\nawait foreach (var ep in server.GetElasticPools())\n{\n    Console.WriteLine($\"Pool: {ep.Data.Name}, DTU: {ep.Data.Sku?.Capacity}\");\n}\n```\n\n### 7. Get Connection String\n\n```csharp\n\u002F\u002F Build connection string (server FQDN is predictable)\nvar serverFqdn = $\"{server.Data.Name}.database.windows.net\";\nvar connectionString = $\"Server=tcp:{serverFqdn},1433;\" +\n    $\"Initial Catalog={database.Data.Name};\" +\n    \"Persist Security Info=False;\" +\n    $\"User ID={server.Data.AdministratorLogin};\" +\n    \"Password=\u003Cyour-password>;\" +\n    \"MultipleActiveResultSets=False;\" +\n    \"Encrypt=True;\" +\n    \"TrustServerCertificate=False;\" +\n    \"Connection Timeout=30;\";\n```\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `ArmClient` | Entry point for all ARM operations |\n| `SqlServerResource` | Represents an Azure SQL server |\n| `SqlServerCollection` | Collection for server CRUD |\n| `SqlDatabaseResource` | Represents a SQL database |\n| `SqlDatabaseCollection` | Collection for database CRUD |\n| `ElasticPoolResource` | Represents an elastic pool |\n| `ElasticPoolCollection` | Collection for elastic pool CRUD |\n| `SqlFirewallRuleResource` | Represents a firewall rule |\n| `SqlFirewallRuleCollection` | Collection for firewall rule CRUD |\n| `SqlServerData` | Server creation\u002Fupdate payload |\n| `SqlDatabaseData` | Database creation\u002Fupdate payload |\n| `ElasticPoolData` | Elastic pool creation\u002Fupdate payload |\n| `SqlFirewallRuleData` | Firewall rule creation\u002Fupdate payload |\n| `SqlSku` | SKU configuration (tier, capacity) |\n\n## Common SKUs\n\n### Database SKUs\n\n| SKU Name | Tier | Description |\n|----------|------|-------------|\n| `Basic` | Basic | 5 DTUs, 2 GB max |\n| `S0`-`S12` | Standard | 10-3000 DTUs |\n| `P1`-`P15` | Premium | 125-4000 DTUs |\n| `GP_Gen5_2` | GeneralPurpose | vCore-based, 2 vCores |\n| `BC_Gen5_2` | BusinessCritical | vCore-based, 2 vCores |\n| `HS_Gen5_2` | Hyperscale | vCore-based, 2 vCores |\n\n### Elastic Pool SKUs\n\n| SKU Name | Tier | Description |\n|----------|------|-------------|\n| `BasicPool` | Basic | 50-1600 eDTUs |\n| `StandardPool` | Standard | 50-3000 eDTUs |\n| `PremiumPool` | Premium | 125-4000 eDTUs |\n| `GP_Gen5_2` | GeneralPurpose | vCore-based |\n| `BC_Gen5_2` | BusinessCritical | vCore-based |\n\n## Best Practices\n\n1. **Use `WaitUntil.Completed`** for operations that must finish before proceeding\n2. **Use `WaitUntil.Started`** when you want to poll manually or run operations in parallel\n3. **Always use `DefaultAzureCredential`** — never hardcode passwords in production\n4. **Handle `RequestFailedException`** for ARM API errors\n5. **Use `CreateOrUpdateAsync`** for idempotent operations\n6. **Navigate hierarchy** via `Get*` methods (e.g., `server.GetSqlDatabases()`)\n7. **Use elastic pools** for cost optimization when managing multiple databases\n8. **Configure firewall rules** before attempting connections\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    var operation = await serverCollection.CreateOrUpdateAsync(\n        WaitUntil.Completed, serverName, serverData);\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 request: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"ARM Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}\");\n}\n```\n\n## Reference Files\n\n| File | When to Read |\n|------|--------------|\n| [references\u002Fserver-management.md](references\u002Fserver-management.md) | Server CRUD, admin credentials, Azure AD auth, networking |\n| [references\u002Fdatabase-operations.md](references\u002Fdatabase-operations.md) | Database CRUD, scaling, backup, restore, copy |\n| [references\u002Felastic-pools.md](references\u002Felastic-pools.md) | Pool management, adding\u002Fremoving databases, scaling |\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Microsoft.Data.SqlClient` | Data plane (execute queries, stored procedures) | `dotnet add package Microsoft.Data.SqlClient` |\n| `Azure.ResourceManager.Sql` | Management plane (this SDK) | `dotnet add package Azure.ResourceManager.Sql` |\n| `Microsoft.EntityFrameworkCore.SqlServer` | ORM for SQL Server | `dotnet add package Microsoft.EntityFrameworkCore.SqlServer` |\n",{"data":43,"body":47},{"name":4,"description":6,"license":28,"metadata":44},{"author":9,"version":45,"package":46},"1.0.0","Azure.ResourceManager.Sql",{"type":48,"children":49},"root",[50,59,65,103,110,171,181,187,327,333,490,496,506,512,519,729,735,857,863,1032,1038,1111,1117,1306,1312,1448,1454,1549,1555,1821,1827,1833,2004,2010,2136,2142,2270,2276,2426,2432,2503,2509,2612],{"type":51,"tag":52,"props":53,"children":55},"element","h1",{"id":54},"azureresourcemanagersql-net",[56],{"type":57,"value":58},"text","Azure.ResourceManager.Sql (.NET)",{"type":51,"tag":60,"props":61,"children":62},"p",{},[63],{"type":57,"value":64},"Management plane SDK for provisioning and managing Azure SQL resources via Azure Resource Manager.",{"type":51,"tag":66,"props":67,"children":68},"blockquote",{},[69,78],{"type":51,"tag":60,"props":70,"children":71},{},[72],{"type":51,"tag":73,"props":74,"children":75},"strong",{},[76],{"type":57,"value":77},"⚠️ Management vs Data Plane",{"type":51,"tag":79,"props":80,"children":81},"ul",{},[82,93],{"type":51,"tag":83,"props":84,"children":85},"li",{},[86,91],{"type":51,"tag":73,"props":87,"children":88},{},[89],{"type":57,"value":90},"This SDK (Azure.ResourceManager.Sql)",{"type":57,"value":92},": Create servers, databases, elastic pools, configure firewall rules, manage failover groups",{"type":51,"tag":83,"props":94,"children":95},{},[96,101],{"type":51,"tag":73,"props":97,"children":98},{},[99],{"type":57,"value":100},"Data Plane SDK (Microsoft.Data.SqlClient)",{"type":57,"value":102},": Execute queries, stored procedures, manage connections",{"type":51,"tag":104,"props":105,"children":107},"h2",{"id":106},"installation",[108],{"type":57,"value":109},"Installation",{"type":51,"tag":111,"props":112,"children":117},"pre",{"className":113,"code":114,"language":115,"meta":116,"style":116},"language-bash shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","dotnet add package Azure.ResourceManager.Sql\ndotnet add package Azure.Identity\n","bash","",[118],{"type":51,"tag":119,"props":120,"children":121},"code",{"__ignoreMap":116},[122,150],{"type":51,"tag":123,"props":124,"children":127},"span",{"class":125,"line":126},"line",1,[128,134,140,145],{"type":51,"tag":123,"props":129,"children":131},{"style":130},"--shiki-light:#E2931D;--shiki-default:#FFCB6B;--shiki-dark:#FFCB6B",[132],{"type":57,"value":133},"dotnet",{"type":51,"tag":123,"props":135,"children":137},{"style":136},"--shiki-light:#91B859;--shiki-default:#C3E88D;--shiki-dark:#C3E88D",[138],{"type":57,"value":139}," add",{"type":51,"tag":123,"props":141,"children":142},{"style":136},[143],{"type":57,"value":144}," package",{"type":51,"tag":123,"props":146,"children":147},{"style":136},[148],{"type":57,"value":149}," Azure.ResourceManager.Sql\n",{"type":51,"tag":123,"props":151,"children":153},{"class":125,"line":152},2,[154,158,162,166],{"type":51,"tag":123,"props":155,"children":156},{"style":130},[157],{"type":57,"value":133},{"type":51,"tag":123,"props":159,"children":160},{"style":136},[161],{"type":57,"value":139},{"type":51,"tag":123,"props":163,"children":164},{"style":136},[165],{"type":57,"value":144},{"type":51,"tag":123,"props":167,"children":168},{"style":136},[169],{"type":57,"value":170}," Azure.Identity\n",{"type":51,"tag":60,"props":172,"children":173},{},[174,179],{"type":51,"tag":73,"props":175,"children":176},{},[177],{"type":57,"value":178},"Current Versions",{"type":57,"value":180},": Stable v1.3.0, Preview v1.4.0-beta.3",{"type":51,"tag":104,"props":182,"children":184},{"id":183},"environment-variables",[185],{"type":57,"value":186},"Environment Variables",{"type":51,"tag":111,"props":188,"children":190},{"className":113,"code":189,"language":115,"meta":116,"style":116},"AZURE_SUBSCRIPTION_ID=\u003Cyour-subscription-id>  # Required: Azure subscription ID\nAZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production\nAZURE_TENANT_ID=\u003Ctenant-id>  # For service principal auth (optional)\nAZURE_CLIENT_ID=\u003Cclient-id>  # For service principal auth (optional)\nAZURE_CLIENT_SECRET=\u003Cclient-secret>  # For service principal auth (optional)\n",[191],{"type":51,"tag":119,"props":192,"children":193},{"__ignoreMap":116},[194,225,248,275,301],{"type":51,"tag":123,"props":195,"children":196},{"class":125,"line":126},[197,203,209,214,219],{"type":51,"tag":123,"props":198,"children":200},{"style":199},"--shiki-light:#90A4AE;--shiki-default:#EEFFFF;--shiki-dark:#BABED8",[201],{"type":57,"value":202},"AZURE_SUBSCRIPTION_ID",{"type":51,"tag":123,"props":204,"children":206},{"style":205},"--shiki-light:#39ADB5;--shiki-default:#89DDFF;--shiki-dark:#89DDFF",[207],{"type":57,"value":208},"=\u003C",{"type":51,"tag":123,"props":210,"children":211},{"style":136},[212],{"type":57,"value":213},"your-subscription-id",{"type":51,"tag":123,"props":215,"children":216},{"style":205},[217],{"type":57,"value":218},">",{"type":51,"tag":123,"props":220,"children":222},{"style":221},"--shiki-light:#90A4AE;--shiki-light-font-style:italic;--shiki-default:#546E7A;--shiki-default-font-style:italic;--shiki-dark:#676E95;--shiki-dark-font-style:italic",[223],{"type":57,"value":224},"  # Required: Azure subscription ID\n",{"type":51,"tag":123,"props":226,"children":227},{"class":125,"line":152},[228,233,238,243],{"type":51,"tag":123,"props":229,"children":230},{"style":199},[231],{"type":57,"value":232},"AZURE_TOKEN_CREDENTIALS",{"type":51,"tag":123,"props":234,"children":235},{"style":205},[236],{"type":57,"value":237},"=",{"type":51,"tag":123,"props":239,"children":240},{"style":136},[241],{"type":57,"value":242},"prod",{"type":51,"tag":123,"props":244,"children":245},{"style":221},[246],{"type":57,"value":247},"  # Required only if DefaultAzureCredential is used in production\n",{"type":51,"tag":123,"props":249,"children":251},{"class":125,"line":250},3,[252,257,261,266,270],{"type":51,"tag":123,"props":253,"children":254},{"style":199},[255],{"type":57,"value":256},"AZURE_TENANT_ID",{"type":51,"tag":123,"props":258,"children":259},{"style":205},[260],{"type":57,"value":208},{"type":51,"tag":123,"props":262,"children":263},{"style":136},[264],{"type":57,"value":265},"tenant-id",{"type":51,"tag":123,"props":267,"children":268},{"style":205},[269],{"type":57,"value":218},{"type":51,"tag":123,"props":271,"children":272},{"style":221},[273],{"type":57,"value":274},"  # For service principal auth (optional)\n",{"type":51,"tag":123,"props":276,"children":278},{"class":125,"line":277},4,[279,284,288,293,297],{"type":51,"tag":123,"props":280,"children":281},{"style":199},[282],{"type":57,"value":283},"AZURE_CLIENT_ID",{"type":51,"tag":123,"props":285,"children":286},{"style":205},[287],{"type":57,"value":208},{"type":51,"tag":123,"props":289,"children":290},{"style":136},[291],{"type":57,"value":292},"client-id",{"type":51,"tag":123,"props":294,"children":295},{"style":205},[296],{"type":57,"value":218},{"type":51,"tag":123,"props":298,"children":299},{"style":221},[300],{"type":57,"value":274},{"type":51,"tag":123,"props":302,"children":304},{"class":125,"line":303},5,[305,310,314,319,323],{"type":51,"tag":123,"props":306,"children":307},{"style":199},[308],{"type":57,"value":309},"AZURE_CLIENT_SECRET",{"type":51,"tag":123,"props":311,"children":312},{"style":205},[313],{"type":57,"value":208},{"type":51,"tag":123,"props":315,"children":316},{"style":136},[317],{"type":57,"value":318},"client-secret",{"type":51,"tag":123,"props":320,"children":321},{"style":205},[322],{"type":57,"value":218},{"type":51,"tag":123,"props":324,"children":325},{"style":221},[326],{"type":57,"value":274},{"type":51,"tag":104,"props":328,"children":330},{"id":329},"authentication",[331],{"type":57,"value":332},"Authentication",{"type":51,"tag":111,"props":334,"children":338},{"className":335,"code":336,"language":337,"meta":116,"style":116},"language-csharp shiki shiki-themes material-theme-lighter material-theme material-theme-palenight","using Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.Sql;\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();\nvar armClient = new ArmClient(credential);\n\n\u002F\u002F Get subscription\nvar subscriptionId = Environment.GetEnvironmentVariable(\"AZURE_SUBSCRIPTION_ID\");\nvar subscription = armClient.GetSubscriptionResource(\n    new ResourceIdentifier($\"\u002Fsubscriptions\u002F{subscriptionId}\"));\n","csharp",[339],{"type":51,"tag":119,"props":340,"children":341},{"__ignoreMap":116},[342,350,358,366,375,383,392,401,410,419,428,437,446,454,463,472,481],{"type":51,"tag":123,"props":343,"children":344},{"class":125,"line":126},[345],{"type":51,"tag":123,"props":346,"children":347},{},[348],{"type":57,"value":349},"using Azure.Identity;\n",{"type":51,"tag":123,"props":351,"children":352},{"class":125,"line":152},[353],{"type":51,"tag":123,"props":354,"children":355},{},[356],{"type":57,"value":357},"using Azure.ResourceManager;\n",{"type":51,"tag":123,"props":359,"children":360},{"class":125,"line":250},[361],{"type":51,"tag":123,"props":362,"children":363},{},[364],{"type":57,"value":365},"using Azure.ResourceManager.Sql;\n",{"type":51,"tag":123,"props":367,"children":368},{"class":125,"line":277},[369],{"type":51,"tag":123,"props":370,"children":372},{"emptyLinePlaceholder":371},true,[373],{"type":57,"value":374},"\n",{"type":51,"tag":123,"props":376,"children":377},{"class":125,"line":303},[378],{"type":51,"tag":123,"props":379,"children":380},{},[381],{"type":57,"value":382},"\u002F\u002F Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=\u003Cspecific_credential>\n",{"type":51,"tag":123,"props":384,"children":386},{"class":125,"line":385},6,[387],{"type":51,"tag":123,"props":388,"children":389},{},[390],{"type":57,"value":391},"var credential = new DefaultAzureCredential(\n",{"type":51,"tag":123,"props":393,"children":395},{"class":125,"line":394},7,[396],{"type":51,"tag":123,"props":397,"children":398},{},[399],{"type":57,"value":400},"    DefaultAzureCredential.DefaultEnvironmentVariableName\n",{"type":51,"tag":123,"props":402,"children":404},{"class":125,"line":403},8,[405],{"type":51,"tag":123,"props":406,"children":407},{},[408],{"type":57,"value":409},");\n",{"type":51,"tag":123,"props":411,"children":413},{"class":125,"line":412},9,[414],{"type":51,"tag":123,"props":415,"children":416},{},[417],{"type":57,"value":418},"\u002F\u002F Or use a specific credential directly in production:\n",{"type":51,"tag":123,"props":420,"children":422},{"class":125,"line":421},10,[423],{"type":51,"tag":123,"props":424,"children":425},{},[426],{"type":57,"value":427},"\u002F\u002F See https:\u002F\u002Flearn.microsoft.com\u002Fdotnet\u002Fapi\u002Foverview\u002Fazure\u002Fidentity-readme?view=azure-dotnet#credential-classes\n",{"type":51,"tag":123,"props":429,"children":431},{"class":125,"line":430},11,[432],{"type":51,"tag":123,"props":433,"children":434},{},[435],{"type":57,"value":436},"\u002F\u002F var credential = new ManagedIdentityCredential();\n",{"type":51,"tag":123,"props":438,"children":440},{"class":125,"line":439},12,[441],{"type":51,"tag":123,"props":442,"children":443},{},[444],{"type":57,"value":445},"var armClient = new ArmClient(credential);\n",{"type":51,"tag":123,"props":447,"children":449},{"class":125,"line":448},13,[450],{"type":51,"tag":123,"props":451,"children":452},{"emptyLinePlaceholder":371},[453],{"type":57,"value":374},{"type":51,"tag":123,"props":455,"children":457},{"class":125,"line":456},14,[458],{"type":51,"tag":123,"props":459,"children":460},{},[461],{"type":57,"value":462},"\u002F\u002F Get subscription\n",{"type":51,"tag":123,"props":464,"children":466},{"class":125,"line":465},15,[467],{"type":51,"tag":123,"props":468,"children":469},{},[470],{"type":57,"value":471},"var subscriptionId = Environment.GetEnvironmentVariable(\"AZURE_SUBSCRIPTION_ID\");\n",{"type":51,"tag":123,"props":473,"children":475},{"class":125,"line":474},16,[476],{"type":51,"tag":123,"props":477,"children":478},{},[479],{"type":57,"value":480},"var subscription = armClient.GetSubscriptionResource(\n",{"type":51,"tag":123,"props":482,"children":484},{"class":125,"line":483},17,[485],{"type":51,"tag":123,"props":486,"children":487},{},[488],{"type":57,"value":489},"    new ResourceIdentifier($\"\u002Fsubscriptions\u002F{subscriptionId}\"));\n",{"type":51,"tag":104,"props":491,"children":493},{"id":492},"resource-hierarchy",[494],{"type":57,"value":495},"Resource Hierarchy",{"type":51,"tag":111,"props":497,"children":501},{"className":498,"code":500,"language":57},[499],"language-text","ArmClient\n└── SubscriptionResource\n    └── ResourceGroupResource\n        └── SqlServerResource\n            ├── SqlDatabaseResource\n            ├── ElasticPoolResource\n            │   └── ElasticPoolDatabaseResource\n            ├── SqlFirewallRuleResource\n            ├── FailoverGroupResource\n            ├── ServerBlobAuditingPolicyResource\n            ├── EncryptionProtectorResource\n            └── VirtualNetworkRuleResource\n",[502],{"type":51,"tag":119,"props":503,"children":504},{"__ignoreMap":116},[505],{"type":57,"value":500},{"type":51,"tag":104,"props":507,"children":509},{"id":508},"core-workflow",[510],{"type":57,"value":511},"Core Workflow",{"type":51,"tag":513,"props":514,"children":516},"h3",{"id":515},"_1-create-sql-server",[517],{"type":57,"value":518},"1. Create SQL Server",{"type":51,"tag":111,"props":520,"children":522},{"className":335,"code":521,"language":337,"meta":116,"style":116},"using Azure.ResourceManager.Sql;\nusing Azure.ResourceManager.Sql.Models;\n\n\u002F\u002F Get resource group\nvar resourceGroup = await subscription\n    .GetResourceGroupAsync(\"my-resource-group\");\n\n\u002F\u002F Define server\nvar serverData = new SqlServerData(AzureLocation.EastUS)\n{\n    AdministratorLogin = \"sqladmin\",\n    AdministratorLoginPassword = \"YourSecurePassword123!\",\n    Version = \"12.0\",\n    MinimalTlsVersion = SqlMinimalTlsVersion.Tls1_2,\n    PublicNetworkAccess = ServerNetworkAccessFlag.Enabled\n};\n\n\u002F\u002F Create server (long-running operation)\nvar serverCollection = resourceGroup.Value.GetSqlServers();\nvar operation = await serverCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-sql-server\",\n    serverData);\n\nSqlServerResource server = operation.Value;\n",[523],{"type":51,"tag":119,"props":524,"children":525},{"__ignoreMap":116},[526,533,541,548,556,564,572,579,587,595,603,611,619,627,635,643,651,658,667,676,685,694,703,712,720],{"type":51,"tag":123,"props":527,"children":528},{"class":125,"line":126},[529],{"type":51,"tag":123,"props":530,"children":531},{},[532],{"type":57,"value":365},{"type":51,"tag":123,"props":534,"children":535},{"class":125,"line":152},[536],{"type":51,"tag":123,"props":537,"children":538},{},[539],{"type":57,"value":540},"using Azure.ResourceManager.Sql.Models;\n",{"type":51,"tag":123,"props":542,"children":543},{"class":125,"line":250},[544],{"type":51,"tag":123,"props":545,"children":546},{"emptyLinePlaceholder":371},[547],{"type":57,"value":374},{"type":51,"tag":123,"props":549,"children":550},{"class":125,"line":277},[551],{"type":51,"tag":123,"props":552,"children":553},{},[554],{"type":57,"value":555},"\u002F\u002F Get resource group\n",{"type":51,"tag":123,"props":557,"children":558},{"class":125,"line":303},[559],{"type":51,"tag":123,"props":560,"children":561},{},[562],{"type":57,"value":563},"var resourceGroup = await subscription\n",{"type":51,"tag":123,"props":565,"children":566},{"class":125,"line":385},[567],{"type":51,"tag":123,"props":568,"children":569},{},[570],{"type":57,"value":571},"    .GetResourceGroupAsync(\"my-resource-group\");\n",{"type":51,"tag":123,"props":573,"children":574},{"class":125,"line":394},[575],{"type":51,"tag":123,"props":576,"children":577},{"emptyLinePlaceholder":371},[578],{"type":57,"value":374},{"type":51,"tag":123,"props":580,"children":581},{"class":125,"line":403},[582],{"type":51,"tag":123,"props":583,"children":584},{},[585],{"type":57,"value":586},"\u002F\u002F Define server\n",{"type":51,"tag":123,"props":588,"children":589},{"class":125,"line":412},[590],{"type":51,"tag":123,"props":591,"children":592},{},[593],{"type":57,"value":594},"var serverData = new SqlServerData(AzureLocation.EastUS)\n",{"type":51,"tag":123,"props":596,"children":597},{"class":125,"line":421},[598],{"type":51,"tag":123,"props":599,"children":600},{},[601],{"type":57,"value":602},"{\n",{"type":51,"tag":123,"props":604,"children":605},{"class":125,"line":430},[606],{"type":51,"tag":123,"props":607,"children":608},{},[609],{"type":57,"value":610},"    AdministratorLogin = \"sqladmin\",\n",{"type":51,"tag":123,"props":612,"children":613},{"class":125,"line":439},[614],{"type":51,"tag":123,"props":615,"children":616},{},[617],{"type":57,"value":618},"    AdministratorLoginPassword = \"YourSecurePassword123!\",\n",{"type":51,"tag":123,"props":620,"children":621},{"class":125,"line":448},[622],{"type":51,"tag":123,"props":623,"children":624},{},[625],{"type":57,"value":626},"    Version = \"12.0\",\n",{"type":51,"tag":123,"props":628,"children":629},{"class":125,"line":456},[630],{"type":51,"tag":123,"props":631,"children":632},{},[633],{"type":57,"value":634},"    MinimalTlsVersion = SqlMinimalTlsVersion.Tls1_2,\n",{"type":51,"tag":123,"props":636,"children":637},{"class":125,"line":465},[638],{"type":51,"tag":123,"props":639,"children":640},{},[641],{"type":57,"value":642},"    PublicNetworkAccess = ServerNetworkAccessFlag.Enabled\n",{"type":51,"tag":123,"props":644,"children":645},{"class":125,"line":474},[646],{"type":51,"tag":123,"props":647,"children":648},{},[649],{"type":57,"value":650},"};\n",{"type":51,"tag":123,"props":652,"children":653},{"class":125,"line":483},[654],{"type":51,"tag":123,"props":655,"children":656},{"emptyLinePlaceholder":371},[657],{"type":57,"value":374},{"type":51,"tag":123,"props":659,"children":661},{"class":125,"line":660},18,[662],{"type":51,"tag":123,"props":663,"children":664},{},[665],{"type":57,"value":666},"\u002F\u002F Create server (long-running operation)\n",{"type":51,"tag":123,"props":668,"children":670},{"class":125,"line":669},19,[671],{"type":51,"tag":123,"props":672,"children":673},{},[674],{"type":57,"value":675},"var serverCollection = resourceGroup.Value.GetSqlServers();\n",{"type":51,"tag":123,"props":677,"children":679},{"class":125,"line":678},20,[680],{"type":51,"tag":123,"props":681,"children":682},{},[683],{"type":57,"value":684},"var operation = await serverCollection.CreateOrUpdateAsync(\n",{"type":51,"tag":123,"props":686,"children":688},{"class":125,"line":687},21,[689],{"type":51,"tag":123,"props":690,"children":691},{},[692],{"type":57,"value":693},"    WaitUntil.Completed,\n",{"type":51,"tag":123,"props":695,"children":697},{"class":125,"line":696},22,[698],{"type":51,"tag":123,"props":699,"children":700},{},[701],{"type":57,"value":702},"    \"my-sql-server\",\n",{"type":51,"tag":123,"props":704,"children":706},{"class":125,"line":705},23,[707],{"type":51,"tag":123,"props":708,"children":709},{},[710],{"type":57,"value":711},"    serverData);\n",{"type":51,"tag":123,"props":713,"children":715},{"class":125,"line":714},24,[716],{"type":51,"tag":123,"props":717,"children":718},{"emptyLinePlaceholder":371},[719],{"type":57,"value":374},{"type":51,"tag":123,"props":721,"children":723},{"class":125,"line":722},25,[724],{"type":51,"tag":123,"props":725,"children":726},{},[727],{"type":57,"value":728},"SqlServerResource server = operation.Value;\n",{"type":51,"tag":513,"props":730,"children":732},{"id":731},"_2-create-sql-database",[733],{"type":57,"value":734},"2. Create SQL Database",{"type":51,"tag":111,"props":736,"children":738},{"className":335,"code":737,"language":337,"meta":116,"style":116},"var databaseData = new SqlDatabaseData(AzureLocation.EastUS)\n{\n    Sku = new SqlSku(\"S0\") { Tier = \"Standard\" },\n    MaxSizeBytes = 2L * 1024 * 1024 * 1024, \u002F\u002F 2 GB\n    Collation = \"SQL_Latin1_General_CP1_CI_AS\",\n    RequestedBackupStorageRedundancy = SqlBackupStorageRedundancy.Local\n};\n\nvar databaseCollection = server.GetSqlDatabases();\nvar dbOperation = await databaseCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-database\",\n    databaseData);\n\nSqlDatabaseResource database = dbOperation.Value;\n",[739],{"type":51,"tag":119,"props":740,"children":741},{"__ignoreMap":116},[742,750,757,765,773,781,789,796,803,811,819,826,834,842,849],{"type":51,"tag":123,"props":743,"children":744},{"class":125,"line":126},[745],{"type":51,"tag":123,"props":746,"children":747},{},[748],{"type":57,"value":749},"var databaseData = new SqlDatabaseData(AzureLocation.EastUS)\n",{"type":51,"tag":123,"props":751,"children":752},{"class":125,"line":152},[753],{"type":51,"tag":123,"props":754,"children":755},{},[756],{"type":57,"value":602},{"type":51,"tag":123,"props":758,"children":759},{"class":125,"line":250},[760],{"type":51,"tag":123,"props":761,"children":762},{},[763],{"type":57,"value":764},"    Sku = new SqlSku(\"S0\") { Tier = \"Standard\" },\n",{"type":51,"tag":123,"props":766,"children":767},{"class":125,"line":277},[768],{"type":51,"tag":123,"props":769,"children":770},{},[771],{"type":57,"value":772},"    MaxSizeBytes = 2L * 1024 * 1024 * 1024, \u002F\u002F 2 GB\n",{"type":51,"tag":123,"props":774,"children":775},{"class":125,"line":303},[776],{"type":51,"tag":123,"props":777,"children":778},{},[779],{"type":57,"value":780},"    Collation = \"SQL_Latin1_General_CP1_CI_AS\",\n",{"type":51,"tag":123,"props":782,"children":783},{"class":125,"line":385},[784],{"type":51,"tag":123,"props":785,"children":786},{},[787],{"type":57,"value":788},"    RequestedBackupStorageRedundancy = SqlBackupStorageRedundancy.Local\n",{"type":51,"tag":123,"props":790,"children":791},{"class":125,"line":394},[792],{"type":51,"tag":123,"props":793,"children":794},{},[795],{"type":57,"value":650},{"type":51,"tag":123,"props":797,"children":798},{"class":125,"line":403},[799],{"type":51,"tag":123,"props":800,"children":801},{"emptyLinePlaceholder":371},[802],{"type":57,"value":374},{"type":51,"tag":123,"props":804,"children":805},{"class":125,"line":412},[806],{"type":51,"tag":123,"props":807,"children":808},{},[809],{"type":57,"value":810},"var databaseCollection = server.GetSqlDatabases();\n",{"type":51,"tag":123,"props":812,"children":813},{"class":125,"line":421},[814],{"type":51,"tag":123,"props":815,"children":816},{},[817],{"type":57,"value":818},"var dbOperation = await databaseCollection.CreateOrUpdateAsync(\n",{"type":51,"tag":123,"props":820,"children":821},{"class":125,"line":430},[822],{"type":51,"tag":123,"props":823,"children":824},{},[825],{"type":57,"value":693},{"type":51,"tag":123,"props":827,"children":828},{"class":125,"line":439},[829],{"type":51,"tag":123,"props":830,"children":831},{},[832],{"type":57,"value":833},"    \"my-database\",\n",{"type":51,"tag":123,"props":835,"children":836},{"class":125,"line":448},[837],{"type":51,"tag":123,"props":838,"children":839},{},[840],{"type":57,"value":841},"    databaseData);\n",{"type":51,"tag":123,"props":843,"children":844},{"class":125,"line":456},[845],{"type":51,"tag":123,"props":846,"children":847},{"emptyLinePlaceholder":371},[848],{"type":57,"value":374},{"type":51,"tag":123,"props":850,"children":851},{"class":125,"line":465},[852],{"type":51,"tag":123,"props":853,"children":854},{},[855],{"type":57,"value":856},"SqlDatabaseResource database = dbOperation.Value;\n",{"type":51,"tag":513,"props":858,"children":860},{"id":859},"_3-create-elastic-pool",[861],{"type":57,"value":862},"3. Create Elastic Pool",{"type":51,"tag":111,"props":864,"children":866},{"className":335,"code":865,"language":337,"meta":116,"style":116},"var poolData = new ElasticPoolData(AzureLocation.EastUS)\n{\n    Sku = new SqlSku(\"StandardPool\")\n    {\n        Tier = \"Standard\",\n        Capacity = 100 \u002F\u002F 100 eDTUs\n    },\n    PerDatabaseSettings = new ElasticPoolPerDatabaseSettings\n    {\n        MinCapacity = 0,\n        MaxCapacity = 100\n    }\n};\n\nvar poolCollection = server.GetElasticPools();\nvar poolOperation = await poolCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-elastic-pool\",\n    poolData);\n\nElasticPoolResource pool = poolOperation.Value;\n",[867],{"type":51,"tag":119,"props":868,"children":869},{"__ignoreMap":116},[870,878,885,893,901,909,917,925,933,940,948,956,964,971,978,986,994,1001,1009,1017,1024],{"type":51,"tag":123,"props":871,"children":872},{"class":125,"line":126},[873],{"type":51,"tag":123,"props":874,"children":875},{},[876],{"type":57,"value":877},"var poolData = new ElasticPoolData(AzureLocation.EastUS)\n",{"type":51,"tag":123,"props":879,"children":880},{"class":125,"line":152},[881],{"type":51,"tag":123,"props":882,"children":883},{},[884],{"type":57,"value":602},{"type":51,"tag":123,"props":886,"children":887},{"class":125,"line":250},[888],{"type":51,"tag":123,"props":889,"children":890},{},[891],{"type":57,"value":892},"    Sku = new SqlSku(\"StandardPool\")\n",{"type":51,"tag":123,"props":894,"children":895},{"class":125,"line":277},[896],{"type":51,"tag":123,"props":897,"children":898},{},[899],{"type":57,"value":900},"    {\n",{"type":51,"tag":123,"props":902,"children":903},{"class":125,"line":303},[904],{"type":51,"tag":123,"props":905,"children":906},{},[907],{"type":57,"value":908},"        Tier = \"Standard\",\n",{"type":51,"tag":123,"props":910,"children":911},{"class":125,"line":385},[912],{"type":51,"tag":123,"props":913,"children":914},{},[915],{"type":57,"value":916},"        Capacity = 100 \u002F\u002F 100 eDTUs\n",{"type":51,"tag":123,"props":918,"children":919},{"class":125,"line":394},[920],{"type":51,"tag":123,"props":921,"children":922},{},[923],{"type":57,"value":924},"    },\n",{"type":51,"tag":123,"props":926,"children":927},{"class":125,"line":403},[928],{"type":51,"tag":123,"props":929,"children":930},{},[931],{"type":57,"value":932},"    PerDatabaseSettings = new ElasticPoolPerDatabaseSettings\n",{"type":51,"tag":123,"props":934,"children":935},{"class":125,"line":412},[936],{"type":51,"tag":123,"props":937,"children":938},{},[939],{"type":57,"value":900},{"type":51,"tag":123,"props":941,"children":942},{"class":125,"line":421},[943],{"type":51,"tag":123,"props":944,"children":945},{},[946],{"type":57,"value":947},"        MinCapacity = 0,\n",{"type":51,"tag":123,"props":949,"children":950},{"class":125,"line":430},[951],{"type":51,"tag":123,"props":952,"children":953},{},[954],{"type":57,"value":955},"        MaxCapacity = 100\n",{"type":51,"tag":123,"props":957,"children":958},{"class":125,"line":439},[959],{"type":51,"tag":123,"props":960,"children":961},{},[962],{"type":57,"value":963},"    }\n",{"type":51,"tag":123,"props":965,"children":966},{"class":125,"line":448},[967],{"type":51,"tag":123,"props":968,"children":969},{},[970],{"type":57,"value":650},{"type":51,"tag":123,"props":972,"children":973},{"class":125,"line":456},[974],{"type":51,"tag":123,"props":975,"children":976},{"emptyLinePlaceholder":371},[977],{"type":57,"value":374},{"type":51,"tag":123,"props":979,"children":980},{"class":125,"line":465},[981],{"type":51,"tag":123,"props":982,"children":983},{},[984],{"type":57,"value":985},"var poolCollection = server.GetElasticPools();\n",{"type":51,"tag":123,"props":987,"children":988},{"class":125,"line":474},[989],{"type":51,"tag":123,"props":990,"children":991},{},[992],{"type":57,"value":993},"var poolOperation = await poolCollection.CreateOrUpdateAsync(\n",{"type":51,"tag":123,"props":995,"children":996},{"class":125,"line":483},[997],{"type":51,"tag":123,"props":998,"children":999},{},[1000],{"type":57,"value":693},{"type":51,"tag":123,"props":1002,"children":1003},{"class":125,"line":660},[1004],{"type":51,"tag":123,"props":1005,"children":1006},{},[1007],{"type":57,"value":1008},"    \"my-elastic-pool\",\n",{"type":51,"tag":123,"props":1010,"children":1011},{"class":125,"line":669},[1012],{"type":51,"tag":123,"props":1013,"children":1014},{},[1015],{"type":57,"value":1016},"    poolData);\n",{"type":51,"tag":123,"props":1018,"children":1019},{"class":125,"line":678},[1020],{"type":51,"tag":123,"props":1021,"children":1022},{"emptyLinePlaceholder":371},[1023],{"type":57,"value":374},{"type":51,"tag":123,"props":1025,"children":1026},{"class":125,"line":687},[1027],{"type":51,"tag":123,"props":1028,"children":1029},{},[1030],{"type":57,"value":1031},"ElasticPoolResource pool = poolOperation.Value;\n",{"type":51,"tag":513,"props":1033,"children":1035},{"id":1034},"_4-add-database-to-elastic-pool",[1036],{"type":57,"value":1037},"4. Add Database to Elastic Pool",{"type":51,"tag":111,"props":1039,"children":1041},{"className":335,"code":1040,"language":337,"meta":116,"style":116},"var databaseData = new SqlDatabaseData(AzureLocation.EastUS)\n{\n    ElasticPoolId = pool.Id\n};\n\nawait databaseCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"pooled-database\",\n    databaseData);\n",[1042],{"type":51,"tag":119,"props":1043,"children":1044},{"__ignoreMap":116},[1045,1052,1059,1067,1074,1081,1089,1096,1104],{"type":51,"tag":123,"props":1046,"children":1047},{"class":125,"line":126},[1048],{"type":51,"tag":123,"props":1049,"children":1050},{},[1051],{"type":57,"value":749},{"type":51,"tag":123,"props":1053,"children":1054},{"class":125,"line":152},[1055],{"type":51,"tag":123,"props":1056,"children":1057},{},[1058],{"type":57,"value":602},{"type":51,"tag":123,"props":1060,"children":1061},{"class":125,"line":250},[1062],{"type":51,"tag":123,"props":1063,"children":1064},{},[1065],{"type":57,"value":1066},"    ElasticPoolId = pool.Id\n",{"type":51,"tag":123,"props":1068,"children":1069},{"class":125,"line":277},[1070],{"type":51,"tag":123,"props":1071,"children":1072},{},[1073],{"type":57,"value":650},{"type":51,"tag":123,"props":1075,"children":1076},{"class":125,"line":303},[1077],{"type":51,"tag":123,"props":1078,"children":1079},{"emptyLinePlaceholder":371},[1080],{"type":57,"value":374},{"type":51,"tag":123,"props":1082,"children":1083},{"class":125,"line":385},[1084],{"type":51,"tag":123,"props":1085,"children":1086},{},[1087],{"type":57,"value":1088},"await databaseCollection.CreateOrUpdateAsync(\n",{"type":51,"tag":123,"props":1090,"children":1091},{"class":125,"line":394},[1092],{"type":51,"tag":123,"props":1093,"children":1094},{},[1095],{"type":57,"value":693},{"type":51,"tag":123,"props":1097,"children":1098},{"class":125,"line":403},[1099],{"type":51,"tag":123,"props":1100,"children":1101},{},[1102],{"type":57,"value":1103},"    \"pooled-database\",\n",{"type":51,"tag":123,"props":1105,"children":1106},{"class":125,"line":412},[1107],{"type":51,"tag":123,"props":1108,"children":1109},{},[1110],{"type":57,"value":841},{"type":51,"tag":513,"props":1112,"children":1114},{"id":1113},"_5-configure-firewall-rules",[1115],{"type":57,"value":1116},"5. Configure Firewall Rules",{"type":51,"tag":111,"props":1118,"children":1120},{"className":335,"code":1119,"language":337,"meta":116,"style":116},"\u002F\u002F Allow Azure services\nvar azureServicesRule = new SqlFirewallRuleData\n{\n    StartIPAddress = \"0.0.0.0\",\n    EndIPAddress = \"0.0.0.0\"\n};\n\nvar firewallCollection = server.GetSqlFirewallRules();\nawait firewallCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"AllowAzureServices\",\n    azureServicesRule);\n\n\u002F\u002F Allow specific IP range\nvar clientRule = new SqlFirewallRuleData\n{\n    StartIPAddress = \"203.0.113.0\",\n    EndIPAddress = \"203.0.113.255\"\n};\n\nawait firewallCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"AllowClientIPs\",\n    clientRule);\n",[1121],{"type":51,"tag":119,"props":1122,"children":1123},{"__ignoreMap":116},[1124,1132,1140,1147,1155,1163,1170,1177,1185,1193,1200,1208,1216,1223,1231,1239,1246,1254,1262,1269,1276,1283,1290,1298],{"type":51,"tag":123,"props":1125,"children":1126},{"class":125,"line":126},[1127],{"type":51,"tag":123,"props":1128,"children":1129},{},[1130],{"type":57,"value":1131},"\u002F\u002F Allow Azure services\n",{"type":51,"tag":123,"props":1133,"children":1134},{"class":125,"line":152},[1135],{"type":51,"tag":123,"props":1136,"children":1137},{},[1138],{"type":57,"value":1139},"var azureServicesRule = new SqlFirewallRuleData\n",{"type":51,"tag":123,"props":1141,"children":1142},{"class":125,"line":250},[1143],{"type":51,"tag":123,"props":1144,"children":1145},{},[1146],{"type":57,"value":602},{"type":51,"tag":123,"props":1148,"children":1149},{"class":125,"line":277},[1150],{"type":51,"tag":123,"props":1151,"children":1152},{},[1153],{"type":57,"value":1154},"    StartIPAddress = \"0.0.0.0\",\n",{"type":51,"tag":123,"props":1156,"children":1157},{"class":125,"line":303},[1158],{"type":51,"tag":123,"props":1159,"children":1160},{},[1161],{"type":57,"value":1162},"    EndIPAddress = \"0.0.0.0\"\n",{"type":51,"tag":123,"props":1164,"children":1165},{"class":125,"line":385},[1166],{"type":51,"tag":123,"props":1167,"children":1168},{},[1169],{"type":57,"value":650},{"type":51,"tag":123,"props":1171,"children":1172},{"class":125,"line":394},[1173],{"type":51,"tag":123,"props":1174,"children":1175},{"emptyLinePlaceholder":371},[1176],{"type":57,"value":374},{"type":51,"tag":123,"props":1178,"children":1179},{"class":125,"line":403},[1180],{"type":51,"tag":123,"props":1181,"children":1182},{},[1183],{"type":57,"value":1184},"var firewallCollection = server.GetSqlFirewallRules();\n",{"type":51,"tag":123,"props":1186,"children":1187},{"class":125,"line":412},[1188],{"type":51,"tag":123,"props":1189,"children":1190},{},[1191],{"type":57,"value":1192},"await firewallCollection.CreateOrUpdateAsync(\n",{"type":51,"tag":123,"props":1194,"children":1195},{"class":125,"line":421},[1196],{"type":51,"tag":123,"props":1197,"children":1198},{},[1199],{"type":57,"value":693},{"type":51,"tag":123,"props":1201,"children":1202},{"class":125,"line":430},[1203],{"type":51,"tag":123,"props":1204,"children":1205},{},[1206],{"type":57,"value":1207},"    \"AllowAzureServices\",\n",{"type":51,"tag":123,"props":1209,"children":1210},{"class":125,"line":439},[1211],{"type":51,"tag":123,"props":1212,"children":1213},{},[1214],{"type":57,"value":1215},"    azureServicesRule);\n",{"type":51,"tag":123,"props":1217,"children":1218},{"class":125,"line":448},[1219],{"type":51,"tag":123,"props":1220,"children":1221},{"emptyLinePlaceholder":371},[1222],{"type":57,"value":374},{"type":51,"tag":123,"props":1224,"children":1225},{"class":125,"line":456},[1226],{"type":51,"tag":123,"props":1227,"children":1228},{},[1229],{"type":57,"value":1230},"\u002F\u002F Allow specific IP range\n",{"type":51,"tag":123,"props":1232,"children":1233},{"class":125,"line":465},[1234],{"type":51,"tag":123,"props":1235,"children":1236},{},[1237],{"type":57,"value":1238},"var clientRule = new SqlFirewallRuleData\n",{"type":51,"tag":123,"props":1240,"children":1241},{"class":125,"line":474},[1242],{"type":51,"tag":123,"props":1243,"children":1244},{},[1245],{"type":57,"value":602},{"type":51,"tag":123,"props":1247,"children":1248},{"class":125,"line":483},[1249],{"type":51,"tag":123,"props":1250,"children":1251},{},[1252],{"type":57,"value":1253},"    StartIPAddress = \"203.0.113.0\",\n",{"type":51,"tag":123,"props":1255,"children":1256},{"class":125,"line":660},[1257],{"type":51,"tag":123,"props":1258,"children":1259},{},[1260],{"type":57,"value":1261},"    EndIPAddress = \"203.0.113.255\"\n",{"type":51,"tag":123,"props":1263,"children":1264},{"class":125,"line":669},[1265],{"type":51,"tag":123,"props":1266,"children":1267},{},[1268],{"type":57,"value":650},{"type":51,"tag":123,"props":1270,"children":1271},{"class":125,"line":678},[1272],{"type":51,"tag":123,"props":1273,"children":1274},{"emptyLinePlaceholder":371},[1275],{"type":57,"value":374},{"type":51,"tag":123,"props":1277,"children":1278},{"class":125,"line":687},[1279],{"type":51,"tag":123,"props":1280,"children":1281},{},[1282],{"type":57,"value":1192},{"type":51,"tag":123,"props":1284,"children":1285},{"class":125,"line":696},[1286],{"type":51,"tag":123,"props":1287,"children":1288},{},[1289],{"type":57,"value":693},{"type":51,"tag":123,"props":1291,"children":1292},{"class":125,"line":705},[1293],{"type":51,"tag":123,"props":1294,"children":1295},{},[1296],{"type":57,"value":1297},"    \"AllowClientIPs\",\n",{"type":51,"tag":123,"props":1299,"children":1300},{"class":125,"line":714},[1301],{"type":51,"tag":123,"props":1302,"children":1303},{},[1304],{"type":57,"value":1305},"    clientRule);\n",{"type":51,"tag":513,"props":1307,"children":1309},{"id":1308},"_6-list-resources",[1310],{"type":57,"value":1311},"6. List Resources",{"type":51,"tag":111,"props":1313,"children":1315},{"className":335,"code":1314,"language":337,"meta":116,"style":116},"\u002F\u002F List all servers in subscription\nawait foreach (var srv in subscription.GetSqlServersAsync())\n{\n    Console.WriteLine($\"Server: {srv.Data.Name} in {srv.Data.Location}\");\n}\n\n\u002F\u002F List databases in a server\nawait foreach (var db in server.GetSqlDatabases())\n{\n    Console.WriteLine($\"Database: {db.Data.Name}, SKU: {db.Data.Sku?.Name}\");\n}\n\n\u002F\u002F List elastic pools\nawait foreach (var ep in server.GetElasticPools())\n{\n    Console.WriteLine($\"Pool: {ep.Data.Name}, DTU: {ep.Data.Sku?.Capacity}\");\n}\n",[1316],{"type":51,"tag":119,"props":1317,"children":1318},{"__ignoreMap":116},[1319,1327,1335,1342,1350,1358,1365,1373,1381,1388,1396,1403,1410,1418,1426,1433,1441],{"type":51,"tag":123,"props":1320,"children":1321},{"class":125,"line":126},[1322],{"type":51,"tag":123,"props":1323,"children":1324},{},[1325],{"type":57,"value":1326},"\u002F\u002F List all servers in subscription\n",{"type":51,"tag":123,"props":1328,"children":1329},{"class":125,"line":152},[1330],{"type":51,"tag":123,"props":1331,"children":1332},{},[1333],{"type":57,"value":1334},"await foreach (var srv in subscription.GetSqlServersAsync())\n",{"type":51,"tag":123,"props":1336,"children":1337},{"class":125,"line":250},[1338],{"type":51,"tag":123,"props":1339,"children":1340},{},[1341],{"type":57,"value":602},{"type":51,"tag":123,"props":1343,"children":1344},{"class":125,"line":277},[1345],{"type":51,"tag":123,"props":1346,"children":1347},{},[1348],{"type":57,"value":1349},"    Console.WriteLine($\"Server: {srv.Data.Name} in {srv.Data.Location}\");\n",{"type":51,"tag":123,"props":1351,"children":1352},{"class":125,"line":303},[1353],{"type":51,"tag":123,"props":1354,"children":1355},{},[1356],{"type":57,"value":1357},"}\n",{"type":51,"tag":123,"props":1359,"children":1360},{"class":125,"line":385},[1361],{"type":51,"tag":123,"props":1362,"children":1363},{"emptyLinePlaceholder":371},[1364],{"type":57,"value":374},{"type":51,"tag":123,"props":1366,"children":1367},{"class":125,"line":394},[1368],{"type":51,"tag":123,"props":1369,"children":1370},{},[1371],{"type":57,"value":1372},"\u002F\u002F List databases in a server\n",{"type":51,"tag":123,"props":1374,"children":1375},{"class":125,"line":403},[1376],{"type":51,"tag":123,"props":1377,"children":1378},{},[1379],{"type":57,"value":1380},"await foreach (var db in server.GetSqlDatabases())\n",{"type":51,"tag":123,"props":1382,"children":1383},{"class":125,"line":412},[1384],{"type":51,"tag":123,"props":1385,"children":1386},{},[1387],{"type":57,"value":602},{"type":51,"tag":123,"props":1389,"children":1390},{"class":125,"line":421},[1391],{"type":51,"tag":123,"props":1392,"children":1393},{},[1394],{"type":57,"value":1395},"    Console.WriteLine($\"Database: {db.Data.Name}, SKU: {db.Data.Sku?.Name}\");\n",{"type":51,"tag":123,"props":1397,"children":1398},{"class":125,"line":430},[1399],{"type":51,"tag":123,"props":1400,"children":1401},{},[1402],{"type":57,"value":1357},{"type":51,"tag":123,"props":1404,"children":1405},{"class":125,"line":439},[1406],{"type":51,"tag":123,"props":1407,"children":1408},{"emptyLinePlaceholder":371},[1409],{"type":57,"value":374},{"type":51,"tag":123,"props":1411,"children":1412},{"class":125,"line":448},[1413],{"type":51,"tag":123,"props":1414,"children":1415},{},[1416],{"type":57,"value":1417},"\u002F\u002F List elastic pools\n",{"type":51,"tag":123,"props":1419,"children":1420},{"class":125,"line":456},[1421],{"type":51,"tag":123,"props":1422,"children":1423},{},[1424],{"type":57,"value":1425},"await foreach (var ep in server.GetElasticPools())\n",{"type":51,"tag":123,"props":1427,"children":1428},{"class":125,"line":465},[1429],{"type":51,"tag":123,"props":1430,"children":1431},{},[1432],{"type":57,"value":602},{"type":51,"tag":123,"props":1434,"children":1435},{"class":125,"line":474},[1436],{"type":51,"tag":123,"props":1437,"children":1438},{},[1439],{"type":57,"value":1440},"    Console.WriteLine($\"Pool: {ep.Data.Name}, DTU: {ep.Data.Sku?.Capacity}\");\n",{"type":51,"tag":123,"props":1442,"children":1443},{"class":125,"line":483},[1444],{"type":51,"tag":123,"props":1445,"children":1446},{},[1447],{"type":57,"value":1357},{"type":51,"tag":513,"props":1449,"children":1451},{"id":1450},"_7-get-connection-string",[1452],{"type":57,"value":1453},"7. Get Connection String",{"type":51,"tag":111,"props":1455,"children":1457},{"className":335,"code":1456,"language":337,"meta":116,"style":116},"\u002F\u002F Build connection string (server FQDN is predictable)\nvar serverFqdn = $\"{server.Data.Name}.database.windows.net\";\nvar connectionString = $\"Server=tcp:{serverFqdn},1433;\" +\n    $\"Initial Catalog={database.Data.Name};\" +\n    \"Persist Security Info=False;\" +\n    $\"User ID={server.Data.AdministratorLogin};\" +\n    \"Password=\u003Cyour-password>;\" +\n    \"MultipleActiveResultSets=False;\" +\n    \"Encrypt=True;\" +\n    \"TrustServerCertificate=False;\" +\n    \"Connection Timeout=30;\";\n",[1458],{"type":51,"tag":119,"props":1459,"children":1460},{"__ignoreMap":116},[1461,1469,1477,1485,1493,1501,1509,1517,1525,1533,1541],{"type":51,"tag":123,"props":1462,"children":1463},{"class":125,"line":126},[1464],{"type":51,"tag":123,"props":1465,"children":1466},{},[1467],{"type":57,"value":1468},"\u002F\u002F Build connection string (server FQDN is predictable)\n",{"type":51,"tag":123,"props":1470,"children":1471},{"class":125,"line":152},[1472],{"type":51,"tag":123,"props":1473,"children":1474},{},[1475],{"type":57,"value":1476},"var serverFqdn = $\"{server.Data.Name}.database.windows.net\";\n",{"type":51,"tag":123,"props":1478,"children":1479},{"class":125,"line":250},[1480],{"type":51,"tag":123,"props":1481,"children":1482},{},[1483],{"type":57,"value":1484},"var connectionString = $\"Server=tcp:{serverFqdn},1433;\" +\n",{"type":51,"tag":123,"props":1486,"children":1487},{"class":125,"line":277},[1488],{"type":51,"tag":123,"props":1489,"children":1490},{},[1491],{"type":57,"value":1492},"    $\"Initial Catalog={database.Data.Name};\" +\n",{"type":51,"tag":123,"props":1494,"children":1495},{"class":125,"line":303},[1496],{"type":51,"tag":123,"props":1497,"children":1498},{},[1499],{"type":57,"value":1500},"    \"Persist Security Info=False;\" +\n",{"type":51,"tag":123,"props":1502,"children":1503},{"class":125,"line":385},[1504],{"type":51,"tag":123,"props":1505,"children":1506},{},[1507],{"type":57,"value":1508},"    $\"User ID={server.Data.AdministratorLogin};\" +\n",{"type":51,"tag":123,"props":1510,"children":1511},{"class":125,"line":394},[1512],{"type":51,"tag":123,"props":1513,"children":1514},{},[1515],{"type":57,"value":1516},"    \"Password=\u003Cyour-password>;\" +\n",{"type":51,"tag":123,"props":1518,"children":1519},{"class":125,"line":403},[1520],{"type":51,"tag":123,"props":1521,"children":1522},{},[1523],{"type":57,"value":1524},"    \"MultipleActiveResultSets=False;\" +\n",{"type":51,"tag":123,"props":1526,"children":1527},{"class":125,"line":412},[1528],{"type":51,"tag":123,"props":1529,"children":1530},{},[1531],{"type":57,"value":1532},"    \"Encrypt=True;\" +\n",{"type":51,"tag":123,"props":1534,"children":1535},{"class":125,"line":421},[1536],{"type":51,"tag":123,"props":1537,"children":1538},{},[1539],{"type":57,"value":1540},"    \"TrustServerCertificate=False;\" +\n",{"type":51,"tag":123,"props":1542,"children":1543},{"class":125,"line":430},[1544],{"type":51,"tag":123,"props":1545,"children":1546},{},[1547],{"type":57,"value":1548},"    \"Connection Timeout=30;\";\n",{"type":51,"tag":104,"props":1550,"children":1552},{"id":1551},"key-types-reference",[1553],{"type":57,"value":1554},"Key Types Reference",{"type":51,"tag":1556,"props":1557,"children":1558},"table",{},[1559,1578],{"type":51,"tag":1560,"props":1561,"children":1562},"thead",{},[1563],{"type":51,"tag":1564,"props":1565,"children":1566},"tr",{},[1567,1573],{"type":51,"tag":1568,"props":1569,"children":1570},"th",{},[1571],{"type":57,"value":1572},"Type",{"type":51,"tag":1568,"props":1574,"children":1575},{},[1576],{"type":57,"value":1577},"Purpose",{"type":51,"tag":1579,"props":1580,"children":1581},"tbody",{},[1582,1600,1617,1634,1651,1668,1685,1702,1719,1736,1753,1770,1787,1804],{"type":51,"tag":1564,"props":1583,"children":1584},{},[1585,1595],{"type":51,"tag":1586,"props":1587,"children":1588},"td",{},[1589],{"type":51,"tag":119,"props":1590,"children":1592},{"className":1591},[],[1593],{"type":57,"value":1594},"ArmClient",{"type":51,"tag":1586,"props":1596,"children":1597},{},[1598],{"type":57,"value":1599},"Entry point for all ARM operations",{"type":51,"tag":1564,"props":1601,"children":1602},{},[1603,1612],{"type":51,"tag":1586,"props":1604,"children":1605},{},[1606],{"type":51,"tag":119,"props":1607,"children":1609},{"className":1608},[],[1610],{"type":57,"value":1611},"SqlServerResource",{"type":51,"tag":1586,"props":1613,"children":1614},{},[1615],{"type":57,"value":1616},"Represents an Azure SQL server",{"type":51,"tag":1564,"props":1618,"children":1619},{},[1620,1629],{"type":51,"tag":1586,"props":1621,"children":1622},{},[1623],{"type":51,"tag":119,"props":1624,"children":1626},{"className":1625},[],[1627],{"type":57,"value":1628},"SqlServerCollection",{"type":51,"tag":1586,"props":1630,"children":1631},{},[1632],{"type":57,"value":1633},"Collection for server CRUD",{"type":51,"tag":1564,"props":1635,"children":1636},{},[1637,1646],{"type":51,"tag":1586,"props":1638,"children":1639},{},[1640],{"type":51,"tag":119,"props":1641,"children":1643},{"className":1642},[],[1644],{"type":57,"value":1645},"SqlDatabaseResource",{"type":51,"tag":1586,"props":1647,"children":1648},{},[1649],{"type":57,"value":1650},"Represents a SQL database",{"type":51,"tag":1564,"props":1652,"children":1653},{},[1654,1663],{"type":51,"tag":1586,"props":1655,"children":1656},{},[1657],{"type":51,"tag":119,"props":1658,"children":1660},{"className":1659},[],[1661],{"type":57,"value":1662},"SqlDatabaseCollection",{"type":51,"tag":1586,"props":1664,"children":1665},{},[1666],{"type":57,"value":1667},"Collection for database CRUD",{"type":51,"tag":1564,"props":1669,"children":1670},{},[1671,1680],{"type":51,"tag":1586,"props":1672,"children":1673},{},[1674],{"type":51,"tag":119,"props":1675,"children":1677},{"className":1676},[],[1678],{"type":57,"value":1679},"ElasticPoolResource",{"type":51,"tag":1586,"props":1681,"children":1682},{},[1683],{"type":57,"value":1684},"Represents an elastic pool",{"type":51,"tag":1564,"props":1686,"children":1687},{},[1688,1697],{"type":51,"tag":1586,"props":1689,"children":1690},{},[1691],{"type":51,"tag":119,"props":1692,"children":1694},{"className":1693},[],[1695],{"type":57,"value":1696},"ElasticPoolCollection",{"type":51,"tag":1586,"props":1698,"children":1699},{},[1700],{"type":57,"value":1701},"Collection for elastic pool CRUD",{"type":51,"tag":1564,"props":1703,"children":1704},{},[1705,1714],{"type":51,"tag":1586,"props":1706,"children":1707},{},[1708],{"type":51,"tag":119,"props":1709,"children":1711},{"className":1710},[],[1712],{"type":57,"value":1713},"SqlFirewallRuleResource",{"type":51,"tag":1586,"props":1715,"children":1716},{},[1717],{"type":57,"value":1718},"Represents a firewall rule",{"type":51,"tag":1564,"props":1720,"children":1721},{},[1722,1731],{"type":51,"tag":1586,"props":1723,"children":1724},{},[1725],{"type":51,"tag":119,"props":1726,"children":1728},{"className":1727},[],[1729],{"type":57,"value":1730},"SqlFirewallRuleCollection",{"type":51,"tag":1586,"props":1732,"children":1733},{},[1734],{"type":57,"value":1735},"Collection for firewall rule CRUD",{"type":51,"tag":1564,"props":1737,"children":1738},{},[1739,1748],{"type":51,"tag":1586,"props":1740,"children":1741},{},[1742],{"type":51,"tag":119,"props":1743,"children":1745},{"className":1744},[],[1746],{"type":57,"value":1747},"SqlServerData",{"type":51,"tag":1586,"props":1749,"children":1750},{},[1751],{"type":57,"value":1752},"Server creation\u002Fupdate payload",{"type":51,"tag":1564,"props":1754,"children":1755},{},[1756,1765],{"type":51,"tag":1586,"props":1757,"children":1758},{},[1759],{"type":51,"tag":119,"props":1760,"children":1762},{"className":1761},[],[1763],{"type":57,"value":1764},"SqlDatabaseData",{"type":51,"tag":1586,"props":1766,"children":1767},{},[1768],{"type":57,"value":1769},"Database creation\u002Fupdate payload",{"type":51,"tag":1564,"props":1771,"children":1772},{},[1773,1782],{"type":51,"tag":1586,"props":1774,"children":1775},{},[1776],{"type":51,"tag":119,"props":1777,"children":1779},{"className":1778},[],[1780],{"type":57,"value":1781},"ElasticPoolData",{"type":51,"tag":1586,"props":1783,"children":1784},{},[1785],{"type":57,"value":1786},"Elastic pool creation\u002Fupdate payload",{"type":51,"tag":1564,"props":1788,"children":1789},{},[1790,1799],{"type":51,"tag":1586,"props":1791,"children":1792},{},[1793],{"type":51,"tag":119,"props":1794,"children":1796},{"className":1795},[],[1797],{"type":57,"value":1798},"SqlFirewallRuleData",{"type":51,"tag":1586,"props":1800,"children":1801},{},[1802],{"type":57,"value":1803},"Firewall rule creation\u002Fupdate payload",{"type":51,"tag":1564,"props":1805,"children":1806},{},[1807,1816],{"type":51,"tag":1586,"props":1808,"children":1809},{},[1810],{"type":51,"tag":119,"props":1811,"children":1813},{"className":1812},[],[1814],{"type":57,"value":1815},"SqlSku",{"type":51,"tag":1586,"props":1817,"children":1818},{},[1819],{"type":57,"value":1820},"SKU configuration (tier, capacity)",{"type":51,"tag":104,"props":1822,"children":1824},{"id":1823},"common-skus",[1825],{"type":57,"value":1826},"Common SKUs",{"type":51,"tag":513,"props":1828,"children":1830},{"id":1829},"database-skus",[1831],{"type":57,"value":1832},"Database SKUs",{"type":51,"tag":1556,"props":1834,"children":1835},{},[1836,1857],{"type":51,"tag":1560,"props":1837,"children":1838},{},[1839],{"type":51,"tag":1564,"props":1840,"children":1841},{},[1842,1847,1852],{"type":51,"tag":1568,"props":1843,"children":1844},{},[1845],{"type":57,"value":1846},"SKU Name",{"type":51,"tag":1568,"props":1848,"children":1849},{},[1850],{"type":57,"value":1851},"Tier",{"type":51,"tag":1568,"props":1853,"children":1854},{},[1855],{"type":57,"value":1856},"Description",{"type":51,"tag":1579,"props":1858,"children":1859},{},[1860,1881,1911,1940,1962,1983],{"type":51,"tag":1564,"props":1861,"children":1862},{},[1863,1872,1876],{"type":51,"tag":1586,"props":1864,"children":1865},{},[1866],{"type":51,"tag":119,"props":1867,"children":1869},{"className":1868},[],[1870],{"type":57,"value":1871},"Basic",{"type":51,"tag":1586,"props":1873,"children":1874},{},[1875],{"type":57,"value":1871},{"type":51,"tag":1586,"props":1877,"children":1878},{},[1879],{"type":57,"value":1880},"5 DTUs, 2 GB max",{"type":51,"tag":1564,"props":1882,"children":1883},{},[1884,1901,1906],{"type":51,"tag":1586,"props":1885,"children":1886},{},[1887,1893,1895],{"type":51,"tag":119,"props":1888,"children":1890},{"className":1889},[],[1891],{"type":57,"value":1892},"S0",{"type":57,"value":1894},"-",{"type":51,"tag":119,"props":1896,"children":1898},{"className":1897},[],[1899],{"type":57,"value":1900},"S12",{"type":51,"tag":1586,"props":1902,"children":1903},{},[1904],{"type":57,"value":1905},"Standard",{"type":51,"tag":1586,"props":1907,"children":1908},{},[1909],{"type":57,"value":1910},"10-3000 DTUs",{"type":51,"tag":1564,"props":1912,"children":1913},{},[1914,1930,1935],{"type":51,"tag":1586,"props":1915,"children":1916},{},[1917,1923,1924],{"type":51,"tag":119,"props":1918,"children":1920},{"className":1919},[],[1921],{"type":57,"value":1922},"P1",{"type":57,"value":1894},{"type":51,"tag":119,"props":1925,"children":1927},{"className":1926},[],[1928],{"type":57,"value":1929},"P15",{"type":51,"tag":1586,"props":1931,"children":1932},{},[1933],{"type":57,"value":1934},"Premium",{"type":51,"tag":1586,"props":1936,"children":1937},{},[1938],{"type":57,"value":1939},"125-4000 DTUs",{"type":51,"tag":1564,"props":1941,"children":1942},{},[1943,1952,1957],{"type":51,"tag":1586,"props":1944,"children":1945},{},[1946],{"type":51,"tag":119,"props":1947,"children":1949},{"className":1948},[],[1950],{"type":57,"value":1951},"GP_Gen5_2",{"type":51,"tag":1586,"props":1953,"children":1954},{},[1955],{"type":57,"value":1956},"GeneralPurpose",{"type":51,"tag":1586,"props":1958,"children":1959},{},[1960],{"type":57,"value":1961},"vCore-based, 2 vCores",{"type":51,"tag":1564,"props":1963,"children":1964},{},[1965,1974,1979],{"type":51,"tag":1586,"props":1966,"children":1967},{},[1968],{"type":51,"tag":119,"props":1969,"children":1971},{"className":1970},[],[1972],{"type":57,"value":1973},"BC_Gen5_2",{"type":51,"tag":1586,"props":1975,"children":1976},{},[1977],{"type":57,"value":1978},"BusinessCritical",{"type":51,"tag":1586,"props":1980,"children":1981},{},[1982],{"type":57,"value":1961},{"type":51,"tag":1564,"props":1984,"children":1985},{},[1986,1995,2000],{"type":51,"tag":1586,"props":1987,"children":1988},{},[1989],{"type":51,"tag":119,"props":1990,"children":1992},{"className":1991},[],[1993],{"type":57,"value":1994},"HS_Gen5_2",{"type":51,"tag":1586,"props":1996,"children":1997},{},[1998],{"type":57,"value":1999},"Hyperscale",{"type":51,"tag":1586,"props":2001,"children":2002},{},[2003],{"type":57,"value":1961},{"type":51,"tag":513,"props":2005,"children":2007},{"id":2006},"elastic-pool-skus",[2008],{"type":57,"value":2009},"Elastic Pool SKUs",{"type":51,"tag":1556,"props":2011,"children":2012},{},[2013,2031],{"type":51,"tag":1560,"props":2014,"children":2015},{},[2016],{"type":51,"tag":1564,"props":2017,"children":2018},{},[2019,2023,2027],{"type":51,"tag":1568,"props":2020,"children":2021},{},[2022],{"type":57,"value":1846},{"type":51,"tag":1568,"props":2024,"children":2025},{},[2026],{"type":57,"value":1851},{"type":51,"tag":1568,"props":2028,"children":2029},{},[2030],{"type":57,"value":1856},{"type":51,"tag":1579,"props":2032,"children":2033},{},[2034,2055,2076,2097,2117],{"type":51,"tag":1564,"props":2035,"children":2036},{},[2037,2046,2050],{"type":51,"tag":1586,"props":2038,"children":2039},{},[2040],{"type":51,"tag":119,"props":2041,"children":2043},{"className":2042},[],[2044],{"type":57,"value":2045},"BasicPool",{"type":51,"tag":1586,"props":2047,"children":2048},{},[2049],{"type":57,"value":1871},{"type":51,"tag":1586,"props":2051,"children":2052},{},[2053],{"type":57,"value":2054},"50-1600 eDTUs",{"type":51,"tag":1564,"props":2056,"children":2057},{},[2058,2067,2071],{"type":51,"tag":1586,"props":2059,"children":2060},{},[2061],{"type":51,"tag":119,"props":2062,"children":2064},{"className":2063},[],[2065],{"type":57,"value":2066},"StandardPool",{"type":51,"tag":1586,"props":2068,"children":2069},{},[2070],{"type":57,"value":1905},{"type":51,"tag":1586,"props":2072,"children":2073},{},[2074],{"type":57,"value":2075},"50-3000 eDTUs",{"type":51,"tag":1564,"props":2077,"children":2078},{},[2079,2088,2092],{"type":51,"tag":1586,"props":2080,"children":2081},{},[2082],{"type":51,"tag":119,"props":2083,"children":2085},{"className":2084},[],[2086],{"type":57,"value":2087},"PremiumPool",{"type":51,"tag":1586,"props":2089,"children":2090},{},[2091],{"type":57,"value":1934},{"type":51,"tag":1586,"props":2093,"children":2094},{},[2095],{"type":57,"value":2096},"125-4000 eDTUs",{"type":51,"tag":1564,"props":2098,"children":2099},{},[2100,2108,2112],{"type":51,"tag":1586,"props":2101,"children":2102},{},[2103],{"type":51,"tag":119,"props":2104,"children":2106},{"className":2105},[],[2107],{"type":57,"value":1951},{"type":51,"tag":1586,"props":2109,"children":2110},{},[2111],{"type":57,"value":1956},{"type":51,"tag":1586,"props":2113,"children":2114},{},[2115],{"type":57,"value":2116},"vCore-based",{"type":51,"tag":1564,"props":2118,"children":2119},{},[2120,2128,2132],{"type":51,"tag":1586,"props":2121,"children":2122},{},[2123],{"type":51,"tag":119,"props":2124,"children":2126},{"className":2125},[],[2127],{"type":57,"value":1973},{"type":51,"tag":1586,"props":2129,"children":2130},{},[2131],{"type":57,"value":1978},{"type":51,"tag":1586,"props":2133,"children":2134},{},[2135],{"type":57,"value":2116},{"type":51,"tag":104,"props":2137,"children":2139},{"id":2138},"best-practices",[2140],{"type":57,"value":2141},"Best Practices",{"type":51,"tag":2143,"props":2144,"children":2145},"ol",{},[2146,2162,2177,2193,2209,2224,2250,2260],{"type":51,"tag":83,"props":2147,"children":2148},{},[2149,2160],{"type":51,"tag":73,"props":2150,"children":2151},{},[2152,2154],{"type":57,"value":2153},"Use ",{"type":51,"tag":119,"props":2155,"children":2157},{"className":2156},[],[2158],{"type":57,"value":2159},"WaitUntil.Completed",{"type":57,"value":2161}," for operations that must finish before proceeding",{"type":51,"tag":83,"props":2163,"children":2164},{},[2165,2175],{"type":51,"tag":73,"props":2166,"children":2167},{},[2168,2169],{"type":57,"value":2153},{"type":51,"tag":119,"props":2170,"children":2172},{"className":2171},[],[2173],{"type":57,"value":2174},"WaitUntil.Started",{"type":57,"value":2176}," when you want to poll manually or run operations in parallel",{"type":51,"tag":83,"props":2178,"children":2179},{},[2180,2191],{"type":51,"tag":73,"props":2181,"children":2182},{},[2183,2185],{"type":57,"value":2184},"Always use ",{"type":51,"tag":119,"props":2186,"children":2188},{"className":2187},[],[2189],{"type":57,"value":2190},"DefaultAzureCredential",{"type":57,"value":2192}," — never hardcode passwords in production",{"type":51,"tag":83,"props":2194,"children":2195},{},[2196,2207],{"type":51,"tag":73,"props":2197,"children":2198},{},[2199,2201],{"type":57,"value":2200},"Handle ",{"type":51,"tag":119,"props":2202,"children":2204},{"className":2203},[],[2205],{"type":57,"value":2206},"RequestFailedException",{"type":57,"value":2208}," for ARM API errors",{"type":51,"tag":83,"props":2210,"children":2211},{},[2212,2222],{"type":51,"tag":73,"props":2213,"children":2214},{},[2215,2216],{"type":57,"value":2153},{"type":51,"tag":119,"props":2217,"children":2219},{"className":2218},[],[2220],{"type":57,"value":2221},"CreateOrUpdateAsync",{"type":57,"value":2223}," for idempotent operations",{"type":51,"tag":83,"props":2225,"children":2226},{},[2227,2232,2234,2240,2242,2248],{"type":51,"tag":73,"props":2228,"children":2229},{},[2230],{"type":57,"value":2231},"Navigate hierarchy",{"type":57,"value":2233}," via ",{"type":51,"tag":119,"props":2235,"children":2237},{"className":2236},[],[2238],{"type":57,"value":2239},"Get*",{"type":57,"value":2241}," methods (e.g., ",{"type":51,"tag":119,"props":2243,"children":2245},{"className":2244},[],[2246],{"type":57,"value":2247},"server.GetSqlDatabases()",{"type":57,"value":2249},")",{"type":51,"tag":83,"props":2251,"children":2252},{},[2253,2258],{"type":51,"tag":73,"props":2254,"children":2255},{},[2256],{"type":57,"value":2257},"Use elastic pools",{"type":57,"value":2259}," for cost optimization when managing multiple databases",{"type":51,"tag":83,"props":2261,"children":2262},{},[2263,2268],{"type":51,"tag":73,"props":2264,"children":2265},{},[2266],{"type":57,"value":2267},"Configure firewall rules",{"type":57,"value":2269}," before attempting connections",{"type":51,"tag":104,"props":2271,"children":2273},{"id":2272},"error-handling",[2274],{"type":57,"value":2275},"Error Handling",{"type":51,"tag":111,"props":2277,"children":2279},{"className":335,"code":2278,"language":337,"meta":116,"style":116},"using Azure;\n\ntry\n{\n    var operation = await serverCollection.CreateOrUpdateAsync(\n        WaitUntil.Completed, serverName, serverData);\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 request: {ex.Message}\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"ARM Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}\");\n}\n",[2280],{"type":51,"tag":119,"props":2281,"children":2282},{"__ignoreMap":116},[2283,2291,2298,2306,2313,2321,2329,2336,2344,2351,2359,2366,2374,2381,2389,2396,2404,2411,2419],{"type":51,"tag":123,"props":2284,"children":2285},{"class":125,"line":126},[2286],{"type":51,"tag":123,"props":2287,"children":2288},{},[2289],{"type":57,"value":2290},"using Azure;\n",{"type":51,"tag":123,"props":2292,"children":2293},{"class":125,"line":152},[2294],{"type":51,"tag":123,"props":2295,"children":2296},{"emptyLinePlaceholder":371},[2297],{"type":57,"value":374},{"type":51,"tag":123,"props":2299,"children":2300},{"class":125,"line":250},[2301],{"type":51,"tag":123,"props":2302,"children":2303},{},[2304],{"type":57,"value":2305},"try\n",{"type":51,"tag":123,"props":2307,"children":2308},{"class":125,"line":277},[2309],{"type":51,"tag":123,"props":2310,"children":2311},{},[2312],{"type":57,"value":602},{"type":51,"tag":123,"props":2314,"children":2315},{"class":125,"line":303},[2316],{"type":51,"tag":123,"props":2317,"children":2318},{},[2319],{"type":57,"value":2320},"    var operation = await serverCollection.CreateOrUpdateAsync(\n",{"type":51,"tag":123,"props":2322,"children":2323},{"class":125,"line":385},[2324],{"type":51,"tag":123,"props":2325,"children":2326},{},[2327],{"type":57,"value":2328},"        WaitUntil.Completed, serverName, serverData);\n",{"type":51,"tag":123,"props":2330,"children":2331},{"class":125,"line":394},[2332],{"type":51,"tag":123,"props":2333,"children":2334},{},[2335],{"type":57,"value":1357},{"type":51,"tag":123,"props":2337,"children":2338},{"class":125,"line":403},[2339],{"type":51,"tag":123,"props":2340,"children":2341},{},[2342],{"type":57,"value":2343},"catch (RequestFailedException ex) when (ex.Status == 409)\n",{"type":51,"tag":123,"props":2345,"children":2346},{"class":125,"line":412},[2347],{"type":51,"tag":123,"props":2348,"children":2349},{},[2350],{"type":57,"value":602},{"type":51,"tag":123,"props":2352,"children":2353},{"class":125,"line":421},[2354],{"type":51,"tag":123,"props":2355,"children":2356},{},[2357],{"type":57,"value":2358},"    Console.WriteLine(\"Server already exists\");\n",{"type":51,"tag":123,"props":2360,"children":2361},{"class":125,"line":430},[2362],{"type":51,"tag":123,"props":2363,"children":2364},{},[2365],{"type":57,"value":1357},{"type":51,"tag":123,"props":2367,"children":2368},{"class":125,"line":439},[2369],{"type":51,"tag":123,"props":2370,"children":2371},{},[2372],{"type":57,"value":2373},"catch (RequestFailedException ex) when (ex.Status == 400)\n",{"type":51,"tag":123,"props":2375,"children":2376},{"class":125,"line":448},[2377],{"type":51,"tag":123,"props":2378,"children":2379},{},[2380],{"type":57,"value":602},{"type":51,"tag":123,"props":2382,"children":2383},{"class":125,"line":456},[2384],{"type":51,"tag":123,"props":2385,"children":2386},{},[2387],{"type":57,"value":2388},"    Console.WriteLine($\"Invalid request: {ex.Message}\");\n",{"type":51,"tag":123,"props":2390,"children":2391},{"class":125,"line":465},[2392],{"type":51,"tag":123,"props":2393,"children":2394},{},[2395],{"type":57,"value":1357},{"type":51,"tag":123,"props":2397,"children":2398},{"class":125,"line":474},[2399],{"type":51,"tag":123,"props":2400,"children":2401},{},[2402],{"type":57,"value":2403},"catch (RequestFailedException ex)\n",{"type":51,"tag":123,"props":2405,"children":2406},{"class":125,"line":483},[2407],{"type":51,"tag":123,"props":2408,"children":2409},{},[2410],{"type":57,"value":602},{"type":51,"tag":123,"props":2412,"children":2413},{"class":125,"line":660},[2414],{"type":51,"tag":123,"props":2415,"children":2416},{},[2417],{"type":57,"value":2418},"    Console.WriteLine($\"ARM Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}\");\n",{"type":51,"tag":123,"props":2420,"children":2421},{"class":125,"line":669},[2422],{"type":51,"tag":123,"props":2423,"children":2424},{},[2425],{"type":57,"value":1357},{"type":51,"tag":104,"props":2427,"children":2429},{"id":2428},"reference-files",[2430],{"type":57,"value":2431},"Reference Files",{"type":51,"tag":1556,"props":2433,"children":2434},{},[2435,2451],{"type":51,"tag":1560,"props":2436,"children":2437},{},[2438],{"type":51,"tag":1564,"props":2439,"children":2440},{},[2441,2446],{"type":51,"tag":1568,"props":2442,"children":2443},{},[2444],{"type":57,"value":2445},"File",{"type":51,"tag":1568,"props":2447,"children":2448},{},[2449],{"type":57,"value":2450},"When to Read",{"type":51,"tag":1579,"props":2452,"children":2453},{},[2454,2471,2487],{"type":51,"tag":1564,"props":2455,"children":2456},{},[2457,2466],{"type":51,"tag":1586,"props":2458,"children":2459},{},[2460],{"type":51,"tag":2461,"props":2462,"children":2464},"a",{"href":2463},"references\u002Fserver-management.md",[2465],{"type":57,"value":2463},{"type":51,"tag":1586,"props":2467,"children":2468},{},[2469],{"type":57,"value":2470},"Server CRUD, admin credentials, Azure AD auth, networking",{"type":51,"tag":1564,"props":2472,"children":2473},{},[2474,2482],{"type":51,"tag":1586,"props":2475,"children":2476},{},[2477],{"type":51,"tag":2461,"props":2478,"children":2480},{"href":2479},"references\u002Fdatabase-operations.md",[2481],{"type":57,"value":2479},{"type":51,"tag":1586,"props":2483,"children":2484},{},[2485],{"type":57,"value":2486},"Database CRUD, scaling, backup, restore, copy",{"type":51,"tag":1564,"props":2488,"children":2489},{},[2490,2498],{"type":51,"tag":1586,"props":2491,"children":2492},{},[2493],{"type":51,"tag":2461,"props":2494,"children":2496},{"href":2495},"references\u002Felastic-pools.md",[2497],{"type":57,"value":2495},{"type":51,"tag":1586,"props":2499,"children":2500},{},[2501],{"type":57,"value":2502},"Pool management, adding\u002Fremoving databases, scaling",{"type":51,"tag":104,"props":2504,"children":2506},{"id":2505},"related-sdks",[2507],{"type":57,"value":2508},"Related SDKs",{"type":51,"tag":1556,"props":2510,"children":2511},{},[2512,2532],{"type":51,"tag":1560,"props":2513,"children":2514},{},[2515],{"type":51,"tag":1564,"props":2516,"children":2517},{},[2518,2523,2527],{"type":51,"tag":1568,"props":2519,"children":2520},{},[2521],{"type":57,"value":2522},"SDK",{"type":51,"tag":1568,"props":2524,"children":2525},{},[2526],{"type":57,"value":1577},{"type":51,"tag":1568,"props":2528,"children":2529},{},[2530],{"type":57,"value":2531},"Install",{"type":51,"tag":1579,"props":2533,"children":2534},{},[2535,2561,2586],{"type":51,"tag":1564,"props":2536,"children":2537},{},[2538,2547,2552],{"type":51,"tag":1586,"props":2539,"children":2540},{},[2541],{"type":51,"tag":119,"props":2542,"children":2544},{"className":2543},[],[2545],{"type":57,"value":2546},"Microsoft.Data.SqlClient",{"type":51,"tag":1586,"props":2548,"children":2549},{},[2550],{"type":57,"value":2551},"Data plane (execute queries, stored procedures)",{"type":51,"tag":1586,"props":2553,"children":2554},{},[2555],{"type":51,"tag":119,"props":2556,"children":2558},{"className":2557},[],[2559],{"type":57,"value":2560},"dotnet add package Microsoft.Data.SqlClient",{"type":51,"tag":1564,"props":2562,"children":2563},{},[2564,2572,2577],{"type":51,"tag":1586,"props":2565,"children":2566},{},[2567],{"type":51,"tag":119,"props":2568,"children":2570},{"className":2569},[],[2571],{"type":57,"value":46},{"type":51,"tag":1586,"props":2573,"children":2574},{},[2575],{"type":57,"value":2576},"Management plane (this SDK)",{"type":51,"tag":1586,"props":2578,"children":2579},{},[2580],{"type":51,"tag":119,"props":2581,"children":2583},{"className":2582},[],[2584],{"type":57,"value":2585},"dotnet add package Azure.ResourceManager.Sql",{"type":51,"tag":1564,"props":2587,"children":2588},{},[2589,2598,2603],{"type":51,"tag":1586,"props":2590,"children":2591},{},[2592],{"type":51,"tag":119,"props":2593,"children":2595},{"className":2594},[],[2596],{"type":57,"value":2597},"Microsoft.EntityFrameworkCore.SqlServer",{"type":51,"tag":1586,"props":2599,"children":2600},{},[2601],{"type":57,"value":2602},"ORM for SQL Server",{"type":51,"tag":1586,"props":2604,"children":2605},{},[2606],{"type":51,"tag":119,"props":2607,"children":2609},{"className":2608},[],[2610],{"type":57,"value":2611},"dotnet add package Microsoft.EntityFrameworkCore.SqlServer",{"type":51,"tag":2613,"props":2614,"children":2615},"style",{},[2616],{"type":57,"value":2617},"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":2619,"total":2726},[2620,2634,2655,2670,2687,2698,2711],{"slug":2621,"name":2621,"fn":2622,"description":2623,"org":2624,"tags":2625,"stars":25,"repoUrl":26,"updatedAt":2633},"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},[2626,2627,2629,2630],{"name":17,"slug":18,"type":15},{"name":2628,"slug":32,"type":15},"Agents",{"name":13,"slug":14,"type":15},{"name":2631,"slug":2632,"type":15},"LLM","llm","2026-07-03T16:32:10.297433",{"slug":2635,"name":2635,"fn":2636,"description":2637,"org":2638,"tags":2639,"stars":25,"repoUrl":26,"updatedAt":2654},"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},[2640,2643,2644,2647,2650,2651],{"name":2641,"slug":2642,"type":15},"Analytics","analytics",{"name":13,"slug":14,"type":15},{"name":2645,"slug":2646,"type":15},"Data Analysis","data-analysis",{"name":2648,"slug":2649,"type":15},"Java","java",{"name":9,"slug":8,"type":15},{"name":2652,"slug":2653,"type":15},"Monitoring","monitoring","2026-05-13T06:14:16.261754",{"slug":2656,"name":2656,"fn":2657,"description":2658,"org":2659,"tags":2660,"stars":25,"repoUrl":26,"updatedAt":2669},"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},[2661,2664,2665,2666],{"name":2662,"slug":2663,"type":15},"AI Infrastructure","ai-infrastructure",{"name":13,"slug":14,"type":15},{"name":2648,"slug":2649,"type":15},{"name":2667,"slug":2668,"type":15},"Security","security","2026-07-07T06:53:31.293235",{"slug":2671,"name":2671,"fn":2672,"description":2673,"org":2674,"tags":2675,"stars":25,"repoUrl":26,"updatedAt":2686},"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},[2676,2677,2680,2681,2682,2685],{"name":13,"slug":14,"type":15},{"name":2678,"slug":2679,"type":15},"Compliance","compliance",{"name":2631,"slug":2632,"type":15},{"name":9,"slug":8,"type":15},{"name":2683,"slug":2684,"type":15},"Python","python",{"name":2667,"slug":2668,"type":15},"2026-07-18T05:14:23.017504",{"slug":2688,"name":2688,"fn":2689,"description":2690,"org":2691,"tags":2692,"stars":25,"repoUrl":26,"updatedAt":2697},"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},[2693,2694,2695,2696],{"name":2641,"slug":2642,"type":15},{"name":13,"slug":14,"type":15},{"name":2631,"slug":2632,"type":15},{"name":2683,"slug":2684,"type":15},"2026-07-31T05:54:29.068751",{"slug":2699,"name":2699,"fn":2700,"description":2701,"org":2702,"tags":2703,"stars":25,"repoUrl":26,"updatedAt":2710},"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},[2704,2707,2708,2709],{"name":2705,"slug":2706,"type":15},"API Development","api-development",{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":2683,"slug":2684,"type":15},"2026-07-18T05:14:16.988376",{"slug":2712,"name":2712,"fn":2713,"description":2714,"org":2715,"tags":2716,"stars":25,"repoUrl":26,"updatedAt":2725},"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},[2717,2718,2721,2724],{"name":13,"slug":14,"type":15},{"name":2719,"slug":2720,"type":15},"Computer Vision","computer-vision",{"name":2722,"slug":2723,"type":15},"Images","images",{"name":2683,"slug":2684,"type":15},"2026-07-18T05:14:18.007737",38,{"items":2728,"total":2861},[2729,2751,2758,2767,2774,2783,2790,2797,2804,2819,2836,2849],{"slug":2730,"name":2730,"fn":2731,"description":2732,"org":2733,"tags":2734,"stars":2748,"repoUrl":2749,"updatedAt":2750},"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},[2735,2738,2741,2742,2745],{"name":2736,"slug":2737,"type":15},"Engineering","engineering",{"name":2739,"slug":2740,"type":15},"Local Development","local-development",{"name":9,"slug":8,"type":15},{"name":2743,"slug":2744,"type":15},"Project Management","project-management",{"name":2746,"slug":2747,"type":15},"Rush","rush",6484,"https:\u002F\u002Fgithub.com\u002Fmicrosoft\u002Frushstack","2026-04-06T18:34:44.965032",{"slug":2621,"name":2621,"fn":2622,"description":2623,"org":2752,"tags":2753,"stars":25,"repoUrl":26,"updatedAt":2633},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2754,2755,2756,2757],{"name":17,"slug":18,"type":15},{"name":2628,"slug":32,"type":15},{"name":13,"slug":14,"type":15},{"name":2631,"slug":2632,"type":15},{"slug":2635,"name":2635,"fn":2636,"description":2637,"org":2759,"tags":2760,"stars":25,"repoUrl":26,"updatedAt":2654},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2761,2762,2763,2764,2765,2766],{"name":2641,"slug":2642,"type":15},{"name":13,"slug":14,"type":15},{"name":2645,"slug":2646,"type":15},{"name":2648,"slug":2649,"type":15},{"name":9,"slug":8,"type":15},{"name":2652,"slug":2653,"type":15},{"slug":2656,"name":2656,"fn":2657,"description":2658,"org":2768,"tags":2769,"stars":25,"repoUrl":26,"updatedAt":2669},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2770,2771,2772,2773],{"name":2662,"slug":2663,"type":15},{"name":13,"slug":14,"type":15},{"name":2648,"slug":2649,"type":15},{"name":2667,"slug":2668,"type":15},{"slug":2671,"name":2671,"fn":2672,"description":2673,"org":2775,"tags":2776,"stars":25,"repoUrl":26,"updatedAt":2686},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2777,2778,2779,2780,2781,2782],{"name":13,"slug":14,"type":15},{"name":2678,"slug":2679,"type":15},{"name":2631,"slug":2632,"type":15},{"name":9,"slug":8,"type":15},{"name":2683,"slug":2684,"type":15},{"name":2667,"slug":2668,"type":15},{"slug":2688,"name":2688,"fn":2689,"description":2690,"org":2784,"tags":2785,"stars":25,"repoUrl":26,"updatedAt":2697},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2786,2787,2788,2789],{"name":2641,"slug":2642,"type":15},{"name":13,"slug":14,"type":15},{"name":2631,"slug":2632,"type":15},{"name":2683,"slug":2684,"type":15},{"slug":2699,"name":2699,"fn":2700,"description":2701,"org":2791,"tags":2792,"stars":25,"repoUrl":26,"updatedAt":2710},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2793,2794,2795,2796],{"name":2705,"slug":2706,"type":15},{"name":13,"slug":14,"type":15},{"name":9,"slug":8,"type":15},{"name":2683,"slug":2684,"type":15},{"slug":2712,"name":2712,"fn":2713,"description":2714,"org":2798,"tags":2799,"stars":25,"repoUrl":26,"updatedAt":2725},{"slug":8,"name":9,"logoUrl":10,"githubOrg":8},[2800,2801,2802,2803],{"name":13,"slug":14,"type":15},{"name":2719,"slug":2720,"type":15},{"name":2722,"slug":2723,"type":15},{"name":2683,"slug":2684,"type":15},{"slug":2805,"name":2805,"fn":2806,"description":2807,"org":2808,"tags":2809,"stars":25,"repoUrl":26,"updatedAt":2818},"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},[2810,2811,2814,2817],{"name":13,"slug":14,"type":15},{"name":2812,"slug":2813,"type":15},"Configuration","configuration",{"name":2815,"slug":2816,"type":15},"Feature Flags","feature-flags",{"name":2648,"slug":2649,"type":15},"2026-07-03T16:32:01.278468",{"slug":2820,"name":2820,"fn":2821,"description":2822,"org":2823,"tags":2824,"stars":25,"repoUrl":26,"updatedAt":2835},"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},[2825,2828,2829,2832],{"name":2826,"slug":2827,"type":15},"Cosmos DB","cosmos-db",{"name":20,"slug":21,"type":15},{"name":2830,"slug":2831,"type":15},"NoSQL","nosql",{"name":2833,"slug":2834,"type":15},"Rust","rust","2026-07-31T05:54:27.021432",{"slug":2837,"name":2837,"fn":2821,"description":2838,"org":2839,"tags":2840,"stars":25,"repoUrl":26,"updatedAt":2848},"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},[2841,2842,2843,2844,2845],{"name":2826,"slug":2827,"type":15},{"name":20,"slug":21,"type":15},{"name":9,"slug":8,"type":15},{"name":2830,"slug":2831,"type":15},{"name":2846,"slug":2847,"type":15},"TypeScript","typescript","2026-07-03T16:31:19.368382",{"slug":2850,"name":2850,"fn":2851,"description":2852,"org":2853,"tags":2854,"stars":25,"repoUrl":26,"updatedAt":2860},"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},[2855,2856,2857,2858,2859],{"name":13,"slug":14,"type":15},{"name":2826,"slug":2827,"type":15},{"name":20,"slug":21,"type":15},{"name":2648,"slug":2649,"type":15},{"name":2830,"slug":2831,"type":15},"2026-05-13T06:14:17.582229",267]