{"id":"44005374-6d57-49d4-a0ae-3c5c1f42fd40","shortId":"sfaN9g","kind":"skill","title":"azure-resource-manager-cosmosdb-dotnet","tagline":"Azure Resource Manager SDK for Cosmos DB in .NET.","description":"# Azure.ResourceManager.CosmosDB (.NET)\n\nManagement plane SDK for provisioning and managing Azure Cosmos DB resources via Azure Resource Manager.\n\n> **⚠️ Management vs Data Plane**\n> - **This SDK (Azure.ResourceManager.CosmosDB)**: Create accounts, databases, containers, configure throughput, manage RBAC\n> - **Data Plane SDK (Microsoft.Azure.Cosmos)**: CRUD operations on documents, queries, stored procedures execution\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.CosmosDB\ndotnet add package Azure.Identity\n```\n\n**Current Versions**: Stable v1.4.0, Preview v1.4.0-beta.13\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=<your-subscription-id>\n# For service principal auth (optional)\nAZURE_TENANT_ID=<tenant-id>\nAZURE_CLIENT_ID=<client-id>\nAZURE_CLIENT_SECRET=<client-secret>\n```\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.CosmosDB;\n\n// Always use DefaultAzureCredential\nvar credential = new DefaultAzureCredential();\nvar armClient = new ArmClient(credential);\n\n// Get subscription\nvar subscriptionId = Environment.GetEnvironmentVariable(\"AZURE_SUBSCRIPTION_ID\");\nvar subscription = armClient.GetSubscriptionResource(\n    new ResourceIdentifier($\"/subscriptions/{subscriptionId}\"));\n```\n\n## Resource Hierarchy\n\n```\nArmClient\n└── SubscriptionResource\n    └── ResourceGroupResource\n        └── CosmosDBAccountResource\n            ├── CosmosDBSqlDatabaseResource\n            │   └── CosmosDBSqlContainerResource\n            │       ├── CosmosDBSqlStoredProcedureResource\n            │       ├── CosmosDBSqlTriggerResource\n            │       └── CosmosDBSqlUserDefinedFunctionResource\n            ├── CassandraKeyspaceResource\n            ├── GremlinDatabaseResource\n            ├── MongoDBDatabaseResource\n            └── CosmosDBTableResource\n```\n\n## Core Workflow\n\n### 1. Create Cosmos DB Account\n\n```csharp\nusing Azure.ResourceManager.CosmosDB;\nusing Azure.ResourceManager.CosmosDB.Models;\n\n// Get resource group\nvar resourceGroup = await subscription\n    .GetResourceGroupAsync(\"my-resource-group\");\n\n// Define account\nvar accountData = new CosmosDBAccountCreateOrUpdateContent(\n    location: AzureLocation.EastUS,\n    locations: new[]\n    {\n        new CosmosDBAccountLocation\n        {\n            LocationName = AzureLocation.EastUS,\n            FailoverPriority = 0,\n            IsZoneRedundant = false\n        }\n    })\n{\n    Kind = CosmosDBAccountKind.GlobalDocumentDB,\n    ConsistencyPolicy = new ConsistencyPolicy(DefaultConsistencyLevel.Session),\n    EnableAutomaticFailover = true\n};\n\n// Create account (long-running operation)\nvar accountCollection = resourceGroup.Value.GetCosmosDBAccounts();\nvar operation = await accountCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-cosmos-account\",\n    accountData);\n\nCosmosDBAccountResource account = operation.Value;\n```\n\n### 2. Create SQL Database\n\n```csharp\nvar databaseData = new CosmosDBSqlDatabaseCreateOrUpdateContent(\n    new CosmosDBSqlDatabaseResourceInfo(\"my-database\"));\n\nvar databaseCollection = account.GetCosmosDBSqlDatabases();\nvar dbOperation = await databaseCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-database\",\n    databaseData);\n\nCosmosDBSqlDatabaseResource database = dbOperation.Value;\n```\n\n### 3. Create SQL Container\n\n```csharp\nvar containerData = new CosmosDBSqlContainerCreateOrUpdateContent(\n    new CosmosDBSqlContainerResourceInfo(\"my-container\")\n    {\n        PartitionKey = new CosmosDBContainerPartitionKey\n        {\n            Paths = { \"/partitionKey\" },\n            Kind = CosmosDBPartitionKind.Hash\n        },\n        IndexingPolicy = new CosmosDBIndexingPolicy\n        {\n            Automatic = true,\n            IndexingMode = CosmosDBIndexingMode.Consistent\n        },\n        DefaultTtl = 86400 // 24 hours\n    });\n\nvar containerCollection = database.GetCosmosDBSqlContainers();\nvar containerOperation = await containerCollection.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    \"my-container\",\n    containerData);\n\nCosmosDBSqlContainerResource container = containerOperation.Value;\n```\n\n### 4. Configure Throughput\n\n```csharp\n// Manual throughput\nvar throughputData = new ThroughputSettingsUpdateData(\n    new ThroughputSettingsResourceInfo\n    {\n        Throughput = 400\n    });\n\n// Autoscale throughput\nvar autoscaleData = new ThroughputSettingsUpdateData(\n    new ThroughputSettingsResourceInfo\n    {\n        AutoscaleSettings = new AutoscaleSettingsResourceInfo\n        {\n            MaxThroughput = 4000\n        }\n    });\n\n// Apply to database\nawait database.CreateOrUpdateCosmosDBSqlDatabaseThroughputAsync(\n    WaitUntil.Completed,\n    throughputData);\n```\n\n### 5. Get Connection Information\n\n```csharp\n// Get keys\nvar keys = await account.GetKeysAsync();\nConsole.WriteLine($\"Primary Key: {keys.Value.PrimaryMasterKey}\");\n\n// Get connection strings\nvar connectionStrings = await account.GetConnectionStringsAsync();\nforeach (var cs in connectionStrings.Value.ConnectionStrings)\n{\n    Console.WriteLine($\"{cs.Description}: {cs.ConnectionString}\");\n}\n```\n\n## Key Types Reference\n\n| Type | Purpose |\n|------|---------|\n| `ArmClient` | Entry point for all ARM operations |\n| `CosmosDBAccountResource` | Represents a Cosmos DB account |\n| `CosmosDBAccountCollection` | Collection for account CRUD |\n| `CosmosDBSqlDatabaseResource` | SQL API database |\n| `CosmosDBSqlContainerResource` | SQL API container |\n| `CosmosDBAccountCreateOrUpdateContent` | Account creation payload |\n| `CosmosDBSqlDatabaseCreateOrUpdateContent` | Database creation payload |\n| `CosmosDBSqlContainerCreateOrUpdateContent` | Container creation payload |\n| `ThroughputSettingsUpdateData` | Throughput configuration |\n\n## Best Practices\n\n1. **Use `WaitUntil.Completed`** for operations that must finish before proceeding\n2. **Use `WaitUntil.Started`** when you want to poll manually or run operations in parallel\n3. **Always use `DefaultAzureCredential`** — never hardcode keys\n4. **Handle `RequestFailedException`** for ARM API errors\n5. **Use `CreateOrUpdateAsync`** for idempotent operations\n6. **Navigate hierarchy** via `Get*` methods (e.g., `account.GetCosmosDBSqlDatabases()`)\n\n## Error Handling\n\n```csharp\nusing Azure;\n\ntry\n{\n    var operation = await accountCollection.CreateOrUpdateAsync(\n        WaitUntil.Completed, accountName, accountData);\n}\ncatch (RequestFailedException ex) when (ex.Status == 409)\n{\n    Console.WriteLine(\"Account already exists\");\n}\ncatch (RequestFailedException ex)\n{\n    Console.WriteLine($\"ARM Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}\");\n}\n```\n\n## Reference Files\n\n| File | When to Read |\n|------|--------------|\n| references/account-management.md | Account CRUD, failover, keys, connection strings, networking |\n| references/sql-resources.md | SQL databases, containers, stored procedures, triggers, UDFs |\n| references/throughput.md | Manual/autoscale throughput, migration between modes |\n\n## Related SDKs\n\n| SDK | Purpose | Install |\n|-----|---------|---------|\n| `Microsoft.Azure.Cosmos` | Data plane (document CRUD, queries) | `dotnet add package Microsoft.Azure.Cosmos` |\n| `Azure.ResourceManager.CosmosDB` | Management plane (this SDK) | `dotnet add package Azure.ResourceManager.CosmosDB` |\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.\n\n## Limitations\n- Use this skill only when the task clearly matches the scope described above.\n- Do not treat the output as a substitute for environment-specific validation, testing, or expert review.\n- Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.","tags":["azure","resource","manager","cosmosdb","dotnet","antigravity","awesome","skills","sickn33","agent-skills","agentic-skills","ai-agent-skills"],"capabilities":["skill","source-sickn33","skill-azure-resource-manager-cosmosdb-dotnet","topic-agent-skills","topic-agentic-skills","topic-ai-agent-skills","topic-ai-agents","topic-ai-coding","topic-ai-workflows","topic-antigravity","topic-antigravity-skills","topic-claude-code","topic-claude-code-skills","topic-codex-cli","topic-codex-skills"],"categories":["antigravity-awesome-skills"],"synonyms":[],"warnings":[],"endpointUrl":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-resource-manager-cosmosdb-dotnet","protocol":"skill","transport":"skills-sh","auth":{"type":"none","details":{"cli":"npx skills add sickn33/antigravity-awesome-skills","source_repo":"https://github.com/sickn33/antigravity-awesome-skills","install_from":"skills.sh"}},"qualityScore":"0.700","qualityRationale":"deterministic score 0.70 from registry signals: · indexed on github topic:agent-skills · 34928 github stars · SKILL.md body (7,676 chars)","verified":false,"liveness":"unknown","lastLivenessCheck":null,"agentReviews":{"count":0,"score_avg":null,"cost_usd_avg":null,"success_rate":null,"latency_p50_ms":null,"narrative_summary":null,"summary_updated_at":null},"enrichmentModel":"deterministic:skill-github:v1","enrichmentVersion":1,"enrichedAt":"2026-04-24T18:50:33.095Z","embedding":null,"createdAt":"2026-04-18T21:32:57.370Z","updatedAt":"2026-04-24T18:50:33.095Z","lastSeenAt":"2026-04-24T18:50:33.095Z","tsv":"'/partitionkey':265 '/subscriptions':129 '0':185 '1':148,406 '2':218,416 '24':277 '3':247,430 '4':294,437 '400':307 '4000':320 '409':476 '5':328,444 '6':450 '86400':276 'account':41,152,171,197,213,216,375,379,390,478,497 'account.getconnectionstringsasync':349 'account.getcosmosdbsqldatabases':234,457 'account.getkeysasync':338 'accountcollect':203 'accountcollection.createorupdateasync':208,467 'accountdata':173,214,470 'accountnam':469 'action':554 'add':63,67,530,539 'alreadi':479 'alway':104,431 'api':383,387,442 'appli':321 'applic':548 'arm':368,441,485 'armclient':112,114,133,363 'armclient.getsubscriptionresource':126 'ask':592 'auth':85 'authent':96 'automat':271 'autoscal':308 'autoscaledata':311 'autoscaleset':316 'autoscalesettingsresourceinfo':318 'await':163,207,237,284,324,337,348,466 'azur':2,7,25,30,79,87,90,93,121,462 'azure-resource-manager-cosmosdb-dotnet':1 'azure.identity':69,99 'azure.resourcemanager':101 'azure.resourcemanager.cosmosdb':16,39,65,103,155,533,541 'azure.resourcemanager.cosmosdb.models':157 'azurelocation.eastus':177,183 'bash':61,78 'best':404 'boundari':600 'cassandrakeyspaceresourc':142 'catch':471,481 'clarif':594 'clear':567 'client':91,94 'collect':377 'configur':44,295,403 'connect':330,344,501 'connectionstr':347 'connectionstrings.value.connectionstrings':354 'consistencypolici':190,192 'console.writeline':339,355,477,484 'contain':43,250,260,289,292,388,398,507 'containercollect':280 'containercollection.createorupdateasync':285 'containerdata':253,290 'containeroper':283 'containeroperation.value':293 'core':146 'cosmos':12,26,150,212,373 'cosmosdb':5 'cosmosdbaccountcollect':376 'cosmosdbaccountcreateorupdatecont':175,389 'cosmosdbaccountkind.globaldocumentdb':189 'cosmosdbaccountloc':181 'cosmosdbaccountresourc':136,215,370 'cosmosdbcontainerpartitionkey':263 'cosmosdbindexingmode.consistent':274 'cosmosdbindexingpolici':270 'cosmosdbpartitionkind.hash':267 'cosmosdbsqlcontainercreateorupdatecont':255,397 'cosmosdbsqlcontainerresourc':138,291,385 'cosmosdbsqlcontainerresourceinfo':257 'cosmosdbsqldatabasecreateorupdatecont':226,393 'cosmosdbsqldatabaseresourc':137,244,381 'cosmosdbsqldatabaseresourceinfo':228 'cosmosdbsqlstoredprocedureresourc':139 'cosmosdbsqltriggerresourc':140 'cosmosdbsqluserdefinedfunctionresourc':141 'cosmosdbtableresourc':145 'creat':40,149,196,219,248 'createorupdateasync':446 'creation':391,395,399 'credenti':108,115 'criteria':603 'crud':52,380,498,527 'cs':352 'cs.connectionstring':357 'cs.description':356 'csharp':97,153,222,251,297,332,460 'current':70 'data':35,48,524 'databas':42,221,231,242,245,323,384,394,506 'database.createorupdatecosmosdbsqldatabasethroughputasync':325 'database.getcosmosdbsqlcontainers':281 'databasecollect':233 'databasecollection.createorupdateasync':238 'databasedata':224,243 'db':13,27,151,374 'dboper':236 'dboperation.value':246 'defaultazurecredenti':106,110,433 'defaultconsistencylevel.session':193 'defaultttl':275 'defin':170 'describ':555,571 'document':55,526 'dotnet':6,62,66,529,538 'e.g':456 'enableautomaticfailov':194 'entri':364 'environ':76,583 'environment-specif':582 'environment.getenvironmentvariable':120 'error':443,458,486 'ex':473,483 'ex.errorcode':488 'ex.message':489 'ex.status':475,487 'execut':59,550 'exist':480 'expert':588 'failov':499 'failoverprior':184 'fals':187 'file':491,492 'finish':413 'foreach':350 'get':116,158,329,333,343,454 'getresourcegroupasync':165 'gremlindatabaseresourc':143 'group':160,169 'handl':438,459 'hardcod':435 'hierarchi':132,452 'hour':278 'id':81,89,92,123 'idempot':448 'indexingmod':273 'indexingpolici':268 'inform':331 'input':597 'instal':60,522 'iszoneredund':186 'key':334,336,341,358,436,500 'keys.value.primarymasterkey':342 'kind':188,266 'limit':559 'locat':176,178 'locationnam':182 'long':199 'long-run':198 'manag':4,9,18,24,32,33,46,534 'manual':298,424 'manual/autoscale':513 'match':568 'maxthroughput':319 'method':455 'microsoft.azure.cosmos':51,523,532 'migrat':515 'miss':605 'mode':517 'mongodbdatabaseresourc':144 'must':412 'my-contain':258,287 'my-cosmos-account':210 'my-databas':229,240 'my-resource-group':166 'navig':451 'net':15,17 'network':503 'never':434 'new':109,113,127,174,179,180,191,225,227,254,256,262,269,302,304,312,314,317 'oper':53,201,206,369,410,427,449,465 'operation.value':217 'option':86 'output':577 'overview':558 'packag':64,68,531,540 'parallel':429 'partitionkey':261 'path':264 'payload':392,396,400 'permiss':598 'plane':19,36,49,525,535 'point':365 'poll':423 'practic':405 'preview':74 'primari':340 'princip':84 'procedur':58,509 'proceed':415 'provis':22 'purpos':362,521 'queri':56,528 'rbac':47 'read':495 'refer':360,490 'references/account-management.md':496 'references/sql-resources.md':504 'references/throughput.md':512 'relat':518 'repres':371 'requestfailedexcept':439,472,482 'requir':596 'resourc':3,8,28,31,131,159,168 'resourcegroup':162 'resourcegroup.value.getcosmosdbaccounts':204 'resourcegroupresourc':135 'resourceidentifi':128 'review':589 'run':200,426 'safeti':599 'scope':570 'sdk':10,20,38,50,520,537 'sdks':519 'secret':95 'servic':83 'skill':546,562 'skill-azure-resource-manager-cosmosdb-dotnet' 'source-sickn33' 'specif':584 'sql':220,249,382,386,505 'stabl':72 'stop':590 'store':57,508 'string':345,502 'subscript':80,117,122,125,164 'subscriptionid':119,130 'subscriptionresourc':134 'substitut':580 'success':602 'task':566 'tenant':88 'test':586 'throughput':45,296,299,306,309,402,514 'throughputdata':301,327 'throughputsettingsresourceinfo':305,315 'throughputsettingsupdatedata':303,313,401 'topic-agent-skills' 'topic-agentic-skills' 'topic-ai-agent-skills' 'topic-ai-agents' 'topic-ai-coding' 'topic-ai-workflows' 'topic-antigravity' 'topic-antigravity-skills' 'topic-claude-code' 'topic-claude-code-skills' 'topic-codex-cli' 'topic-codex-skills' 'treat':575 'tri':463 'trigger':510 'true':195,272 'type':359,361 'udf':511 'use':98,100,102,105,154,156,407,417,432,445,461,544,560 'v1.4.0':73 'v1.4.0-beta.13':75 'valid':585 'var':107,111,118,124,161,172,202,205,223,232,235,252,279,282,300,310,335,346,351,464 'variabl':77 'version':71 'via':29,453 'vs':34 'waituntil.completed':209,239,286,326,408,468 'waituntil.started':418 'want':421 'workflow':147,552","prices":[{"id":"3dfc91bb-c4f2-4a15-baab-ae00754dbdbb","listingId":"44005374-6d57-49d4-a0ae-3c5c1f42fd40","amountUsd":"0","unit":"free","nativeCurrency":null,"nativeAmount":null,"chain":null,"payTo":null,"paymentMethod":"skill-free","isPrimary":true,"details":{"org":"sickn33","category":"antigravity-awesome-skills","install_from":"skills.sh"},"createdAt":"2026-04-18T21:32:57.370Z"}],"sources":[{"listingId":"44005374-6d57-49d4-a0ae-3c5c1f42fd40","source":"github","sourceId":"sickn33/antigravity-awesome-skills/azure-resource-manager-cosmosdb-dotnet","sourceUrl":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-resource-manager-cosmosdb-dotnet","isPrimary":false,"firstSeenAt":"2026-04-18T21:32:57.370Z","lastSeenAt":"2026-04-24T18:50:33.095Z"}],"details":{"listingId":"44005374-6d57-49d4-a0ae-3c5c1f42fd40","quickStartSnippet":null,"exampleRequest":null,"exampleResponse":null,"schema":null,"openapiUrl":null,"agentsTxtUrl":null,"citations":[],"useCases":[],"bestFor":[],"notFor":[],"kindDetails":{"org":"sickn33","slug":"azure-resource-manager-cosmosdb-dotnet","github":{"repo":"sickn33/antigravity-awesome-skills","stars":34928,"topics":["agent-skills","agentic-skills","ai-agent-skills","ai-agents","ai-coding","ai-workflows","antigravity","antigravity-skills","claude-code","claude-code-skills","codex-cli","codex-skills","cursor","cursor-skills","developer-tools","gemini-cli","gemini-skills","kiro","mcp","skill-library"],"license":"mit","html_url":"https://github.com/sickn33/antigravity-awesome-skills","pushed_at":"2026-04-24T06:41:17Z","description":"Installable GitHub library of 1,400+ agentic skills for Claude Code, Cursor, Codex CLI, Gemini CLI, Antigravity, and more. Includes installer CLI, bundles, workflows, and official/community skill collections.","skill_md_sha":"0bb06a0eebf28c8b505e8735f45bed9df5825c1b","skill_md_path":"skills/azure-resource-manager-cosmosdb-dotnet/SKILL.md","default_branch":"main","skill_tree_url":"https://github.com/sickn33/antigravity-awesome-skills/tree/main/skills/azure-resource-manager-cosmosdb-dotnet"},"layout":"multi","source":"github","category":"antigravity-awesome-skills","frontmatter":{"name":"azure-resource-manager-cosmosdb-dotnet","description":"Azure Resource Manager SDK for Cosmos DB in .NET."},"skills_sh_url":"https://skills.sh/sickn33/antigravity-awesome-skills/azure-resource-manager-cosmosdb-dotnet"},"updatedAt":"2026-04-24T18:50:33.095Z"}}