[{"data":1,"prerenderedAt":-1},["ShallowReactive",2],{"skill:01M6FD5NRT2XBBTDXTYXNKC188":3,"skill-same:01M6FD5NRT2XBBTDXTYXNKC188":48},{"skillNo":4,"name":5,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":15,"categories":16,"keywords":17,"publishedAt":21,"linkOnly":22,"markdownContent":23,"markdownBody":23,"frontMatter":24,"refName":25,"commitSha":26,"skillDirectory":27,"forksCount":28,"repositoryHtmlUrl":29,"repositoryHomepageUrl":30,"ownerHtmlUrl":31,"ownerBlogUrl":6,"ownerDescription":32,"updatedAt":33,"install":34,"resources":47},"01M6FD5NRT2XBBTDXTYXNKC188","azure-mgmt-mongodbatlas-dotnet",null,"ComeOnOliver\u002Fskillshub","ComeOnOliver","https:\u002F\u002Favatars.githubusercontent.com\u002Fu\u002F43215937?v=4","01M6E5JNFECJAAVFE0W7SMWWD2","Haoran Shu","01M6E5JNNDQS7AJZDYFQ8TPZCK",67,"MIT","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft\u002Fskills\u002Fazure-mgmt-mongodbatlas-dotnet\u002FSKILL.md",[],[18,19,20],"dotnet","azure","azure mgmt mongodbatlas dotnet","2026-11-10 10:12:30",false,"# Azure.ResourceManager.MongoDBAtlas SDK\n\nManage MongoDB Atlas Organizations as Azure ARM resources with unified billing through Azure Marketplace.\n\n## Package Information\n\n| Property | Value |\n|----------|-------|\n| Package | `Azure.ResourceManager.MongoDBAtlas` |\n| Version | 1.0.0 (GA) |\n| API Version | 2025-06-01 |\n| Resource Type | `MongoDB.Atlas\u002Forganizations` |\n| NuGet | [Azure.ResourceManager.MongoDBAtlas](https:\u002F\u002Fwww.nuget.org\u002Fpackages\u002FAzure.ResourceManager.MongoDBAtlas) |\n\n## Installation\n\n```bash\ndotnet add package Azure.ResourceManager.MongoDBAtlas\ndotnet add package Azure.Identity\ndotnet add package Azure.ResourceManager\n```\n\n## Important Scope Limitation\n\nThis SDK manages **MongoDB Atlas Organizations as Azure ARM resources** for marketplace integration. It does NOT directly manage:\n- Atlas clusters\n- Databases\n- Collections\n- Users\u002Froles\n\nFor cluster management, use the MongoDB Atlas API directly after creating the organization.\n\n## Authentication\n\n```csharp\nusing Azure.Identity;\nusing Azure.ResourceManager;\nusing Azure.ResourceManager.MongoDBAtlas;\nusing Azure.ResourceManager.MongoDBAtlas.Models;\n\n\u002F\u002F Create ARM client with DefaultAzureCredential\nvar credential = new DefaultAzureCredential();\nvar armClient = new ArmClient(credential);\n```\n\n## Core Types\n\n| Type | Purpose |\n|------|---------|\n| `MongoDBAtlasOrganizationResource` | ARM resource representing an Atlas organization |\n| `MongoDBAtlasOrganizationCollection` | Collection of organizations in a resource group |\n| `MongoDBAtlasOrganizationData` | Data model for organization resource |\n| `MongoDBAtlasOrganizationProperties` | Organization-specific properties |\n| `MongoDBAtlasMarketplaceDetails` | Azure Marketplace subscription details |\n| `MongoDBAtlasOfferDetails` | Marketplace offer configuration |\n| `MongoDBAtlasUserDetails` | User information for the organization |\n| `MongoDBAtlasPartnerProperties` | MongoDB-specific properties (org name, ID) |\n\n## Workflows\n\n### Get Organization Collection\n\n```csharp\n\u002F\u002F Get resource group\nvar subscription = await armClient.GetDefaultSubscriptionAsync();\nvar resourceGroup = await subscription.GetResourceGroupAsync(\"my-resource-group\");\n\n\u002F\u002F Get organizations collection\nMongoDBAtlasOrganizationCollection organizations = \n    resourceGroup.Value.GetMongoDBAtlasOrganizations();\n```\n\n### Create Organization\n\n```csharp\nvar organizationName = \"my-atlas-org\";\nvar location = AzureLocation.EastUS2;\n\n\u002F\u002F Build organization data\nvar organizationData = new MongoDBAtlasOrganizationData(location)\n{\n    Properties = new MongoDBAtlasOrganizationProperties(\n        marketplace: new MongoDBAtlasMarketplaceDetails(\n            subscriptionId: \"your-azure-subscription-id\",\n            offerDetails: new MongoDBAtlasOfferDetails(\n                publisherId: \"mongodb\",\n                offerId: \"mongodb_atlas_azure_native_prod\",\n                planId: \"private_plan\",\n                planName: \"Pay as You Go (Free) (Private)\",\n                termUnit: \"P1M\",\n                termId: \"gmz7xq9ge3py\"\n            )\n        ),\n        user: new MongoDBAtlasUserDetails(\n            emailAddress: \"admin@example.com\",\n            upn: \"admin@example.com\"\n        )\n        {\n            FirstName = \"Admin\",\n            LastName = \"User\"\n        }\n    )\n    {\n        PartnerProperties = new MongoDBAtlasPartnerProperties\n        {\n            OrganizationName = organizationName\n        }\n    },\n    Tags = { [\"Environment\"] = \"Production\" }\n};\n\n\u002F\u002F Create the organization (long-running operation)\nvar operation = await organizations.CreateOrUpdateAsync(\n    WaitUntil.Completed,\n    organizationName,\n    organizationData\n);\n\nMongoDBAtlasOrganizationResource organization = operation.Value;\nConsole.WriteLine($\"Created: {organization.Id}\");\n```\n\n### Get Existing Organization\n\n```csharp\n\u002F\u002F Option 1: From collection\nMongoDBAtlasOrganizationResource org = \n    await organizations.GetAsync(\"my-atlas-org\");\n\n\u002F\u002F Option 2: From resource identifier\nvar resourceId = MongoDBAtlasOrganizationResource.CreateResourceIdentifier(\n    subscriptionId: \"subscription-id\",\n    resourceGroupName: \"my-resource-group\",\n    organizationName: \"my-atlas-org\"\n);\nMongoDBAtlasOrganizationResource org2 = \n    armClient.GetMongoDBAtlasOrganizationResource(resourceId);\nawait org2.GetAsync(); \u002F\u002F Fetch data\n```\n\n### List Organizations\n\n```csharp\n\u002F\u002F List in resource group\nawait foreach (var org in organizations.GetAllAsync())\n{\n    Console.WriteLine($\"Org: {org.Data.Name}\");\n    Console.WriteLine($\"  Location: {org.Data.Location}\");\n    Console.WriteLine($\"  State: {org.Data.Properties?.ProvisioningState}\");\n}\n\n\u002F\u002F List across subscription\nawait foreach (var org in subscription.GetMongoDBAtlasOrganizationsAsync())\n{\n    Console.WriteLine($\"Org: {org.Data.Name} in {org.Data.Id}\");\n}\n```\n\n### Update Tags\n\n```csharp\n\u002F\u002F Add a single tag\nawait organization.AddTagAsync(\"CostCenter\", \"12345\");\n\n\u002F\u002F Replace all tags\nawait organization.SetTagsAsync(new Dictionary\u003Cstring, string>\n{\n    [\"Environment\"] = \"Production\",\n    [\"Team\"] = \"Platform\"\n});\n\n\u002F\u002F Remove a tag\nawait organization.RemoveTagAsync(\"OldTag\");\n```\n\n### Update Organization Properties\n\n```csharp\nvar patch = new MongoDBAtlasOrganizationPatch\n{\n    Tags = { [\"UpdatedAt\"] = DateTime.UtcNow.ToString(\"o\") },\n    Properties = new MongoDBAtlasOrganizationUpdateProperties\n    {\n        \u002F\u002F Update user details if needed\n        User = new MongoDBAtlasUserDetails(\n            emailAddress: \"newadmin@example.com\",\n            upn: \"newadmin@example.com\"\n        )\n    }\n};\n\nvar updateOperation = await organization.UpdateAsync(\n    WaitUntil.Completed,\n    patch\n);\n```\n\n### Delete Organization\n\n```csharp\n\u002F\u002F Delete (long-running operation)\nawait organization.DeleteAsync(WaitUntil.Completed);\n```\n\n## Model Properties Reference\n\n### MongoDBAtlasOrganizationProperties\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `Marketplace` | `MongoDBAtlasMarketplaceDetails` | Required. Marketplace subscription details |\n| `User` | `MongoDBAtlasUserDetails` | Required. Organization admin user |\n| `PartnerProperties` | `MongoDBAtlasPartnerProperties` | MongoDB-specific properties |\n| `ProvisioningState` | `MongoDBAtlasResourceProvisioningState` | Read-only. Current provisioning state |\n\n### MongoDBAtlasMarketplaceDetails\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `SubscriptionId` | `string` | Required. Azure subscription ID for billing |\n| `OfferDetails` | `MongoDBAtlasOfferDetails` | Required. Marketplace offer configuration |\n| `SubscriptionStatus` | `MarketplaceSubscriptionStatus` | Read-only. Subscription status |\n\n### MongoDBAtlasOfferDetails\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `PublisherId` | `string` | Required. Publisher ID (typically \"mongodb\") |\n| `OfferId` | `string` | Required. Offer ID |\n| `PlanId` | `string` | Required. Plan ID |\n| `PlanName` | `string` | Required. Display name of the plan |\n| `TermUnit` | `string` | Required. Billing term unit (e.g., \"P1M\") |\n| `TermId` | `string` | Required. Term identifier |\n\n### MongoDBAtlasUserDetails\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `EmailAddress` | `string` | Required. User email address |\n| `Upn` | `string` | Required. User principal name |\n| `FirstName` | `string` | Optional. User first name |\n| `LastName` | `string` | Optional. User last name |\n\n### MongoDBAtlasPartnerProperties\n\n| Property | Type | Description |\n|----------|------|-------------|\n| `OrganizationName` | `string` | Name of the MongoDB Atlas organization |\n| `OrganizationId` | `string` | Read-only. MongoDB Atlas organization ID |\n\n## Provisioning States\n\n| State | Description |\n|-------|-------------|\n| `Succeeded` | Resource provisioned successfully |\n| `Failed` | Provisioning failed |\n| `Canceled` | Provisioning was canceled |\n| `Provisioning` | Resource is being provisioned |\n| `Updating` | Resource is being updated |\n| `Deleting` | Resource is being deleted |\n| `Accepted` | Request accepted, provisioning starting |\n\n## Marketplace Subscription Status\n\n| Status | Description |\n|--------|-------------|\n| `PendingFulfillmentStart` | Subscription pending activation |\n| `Subscribed` | Active subscription |\n| `Suspended` | Subscription suspended |\n| `Unsubscribed` | Subscription canceled |\n\n## Best Practices\n\n### Use Async Methods\n\n```csharp\n\u002F\u002F Prefer async for all operations\nvar org = await organizations.GetAsync(\"my-org\");\nawait org.Value.AddTagAsync(\"key\", \"value\");\n```\n\n### Handle Long-Running Operations\n\n```csharp\n\u002F\u002F Wait for completion\nvar operation = await organizations.CreateOrUpdateAsync(\n    WaitUntil.Completed,  \u002F\u002F Blocks until done\n    name,\n    data\n);\n\n\u002F\u002F Or start and poll later\nvar operation = await organizations.CreateOrUpdateAsync(\n    WaitUntil.Started,  \u002F\u002F Returns immediately\n    name,\n    data\n);\n\n\u002F\u002F Poll for completion\nwhile (!operation.HasCompleted)\n{\n    await Task.Delay(TimeSpan.FromSeconds(5));\n    await operation.UpdateStatusAsync();\n}\n```\n\n### Check Provisioning State\n\n```csharp\nvar org = await organizations.GetAsync(\"my-org\");\nif (org.Value.Data.Properties?.ProvisioningState == \n    MongoDBAtlasResourceProvisioningState.Succeeded)\n{\n    Console.WriteLine(\"Organization is ready\");\n}\n```\n\n### Use Resource Identifiers\n\n```csharp\n\u002F\u002F Create identifier without API call\nvar resourceId = MongoDBAtlasOrganizationResource.CreateResourceIdentifier(\n    subscriptionId,\n    resourceGroupName,\n    organizationName\n);\n\n\u002F\u002F Get resource handle (no data yet)\nvar orgResource = armClient.GetMongoDBAtlasOrganizationResource(resourceId);\n\n\u002F\u002F Fetch data when needed\nvar response = await orgResource.GetAsync();\n```\n\n## Common Errors\n\n| Error | Cause | Solution |\n|-------|-------|----------|\n| `ResourceNotFound` | Organization doesn't exist | Verify name and resource group |\n| `AuthorizationFailed` | Insufficient permissions | Check RBAC roles on resource group |\n| `InvalidParameter` | Missing required properties | Ensure all required fields are set |\n| `MarketplaceError` | Marketplace subscription issue | Verify offer details and subscription |\n\n## Related Resources\n\n- [Microsoft Learn: MongoDB Atlas on Azure](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fazure\u002Fpartner-solutions\u002Fmongodb-atlas\u002F)\n- [API Reference](https:\u002F\u002Flearn.microsoft.com\u002Fen-us\u002Fdotnet\u002Fapi\u002Fazure.resourcemanager.mongodbatlas)\n- [Azure SDK for .NET](https:\u002F\u002Fgithub.com\u002FAzure\u002Fazure-sdk-for-net\u002Ftree\u002Fmain\u002Fsdk\u002Fmongodbatlas)\n",{},"main","def8531e65114c0fca8fb8551c1871ee0eed705c","skills\u002Fmicrosoft\u002Fskills\u002Fazure-mgmt-mongodbatlas-dotnet",24,"https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub","https:\u002F\u002Fskillshub.wtf","https:\u002F\u002Fgithub.com\u002FComeOnOliver","AI & Blockchain Engineer\r\n","2026-06-24 22:07:19",{"source":7,"skillName":5,"commands":35,"prompt":45,"zipAvailable":46},[36,39,42],{"tool":37,"command":38},"npx","npx skills add ComeOnOliver\u002Fskillshub --skill azure-mgmt-mongodbatlas-dotnet",{"tool":40,"command":41},"bunx","bunx skills add ComeOnOliver\u002Fskillshub --skill azure-mgmt-mongodbatlas-dotnet",{"tool":43,"command":44},"pnpm","pnpm dlx skills add ComeOnOliver\u002Fskillshub --skill azure-mgmt-mongodbatlas-dotnet","安装技能，技能地址：https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fmicrosoft\u002Fskills\u002Fazure-mgmt-mongodbatlas-dotnet\u002FSKILL.md",true,[],[49,63,73,82,88,95],{"skillNo":50,"name":51,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":52,"categories":53,"keywords":59,"publishedAt":21},"01M6FKJN13GMG4KY57J3QD8GY5","model-hierarchy-skill","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzscole\u002Fmodel-hierarchy-skill\u002Fmodel-hierarchy-skill\u002FSKILL.md",[54],{"categoryNo":55,"categoryName":56,"taxonomyType":57,"taxonomyTypeDesc":58},"01JBSEEDCAT000000000000023","Skill与智能体开发","SCENARIO","使用场景",[60,61,62],"model","model hierarchy","model hierarchy skill",{"skillNo":64,"name":65,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":66,"categories":67,"keywords":69,"publishedAt":21},"01M6FKJJJ6GCAMR4PPPRD12M5X","zoom-mcp","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-mcp\u002FSKILL.md",[68],{"categoryNo":55,"categoryName":56,"taxonomyType":57,"taxonomyTypeDesc":58},[70,71,72],"MCP","zoom","zoom mcp",{"skillNo":74,"name":75,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":76,"categories":77,"keywords":78,"publishedAt":21},"01M6FKJE3KYT3KPEZMEEHYKA6K","zoom-apps-sdk","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fzoom-apps-sdk\u002FSKILL.md",[],[79,80,81,71],"sdk","zoom apps sdk","apps",{"skillNo":83,"name":84,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":85,"categories":86,"keywords":87,"publishedAt":21},"01M6FKJ9EDH9Q5VWDF8HAJRSP0","windows","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwindows\u002FSKILL.md",[],[84],{"skillNo":89,"name":90,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":91,"categories":92,"keywords":94,"publishedAt":21},"01M6FKJ666BEEFC3AE9GJ72Q93","whiteboard","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwhiteboard\u002FSKILL.md",[93],{"categoryNo":55,"categoryName":56,"taxonomyType":57,"taxonomyTypeDesc":58},[90],{"skillNo":96,"name":97,"nameZh":6,"description":6,"descriptionZh":6,"repositoryFullName":7,"ownerLogin":8,"ownerAvatarUrl":9,"ownerAccountNo":10,"ownerDisplayName":11,"repositoryNo":12,"starsCount":13,"licenseSpdxId":14,"licenseFileUrl":6,"sourceHtmlUrl":98,"categories":99,"keywords":100,"publishedAt":21},"01M6FKJ21WFCDGTJQ2Q91T9DVW","websockets","https:\u002F\u002Fgithub.com\u002FComeOnOliver\u002Fskillshub\u002Fblob\u002Fmain\u002Fskills\u002Fzoom\u002Fskills\u002Fwebsockets\u002FSKILL.md",[],[97]]