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