Azure.ResourceManager.MongoDBAtlas SDK is a development claude skill built by sickn33.

What it does
Azure.ResourceManager.MongoDBAtlas SDK
Category
Development
Created by
sickn33
Last updated
Not tracked
Claude SkillDevelopment GitHub-backed Curated VerifiedClaude Code

Azure.ResourceManager.MongoDBAtlas SDK

Azure.ResourceManager.MongoDBAtlas SDK

Skill instructions


name: azure-mgmt-mongodbatlas-dotnet description: "Manage MongoDB Atlas Organizations as Azure ARM resources with unified billing through Azure Marketplace." risk: unknown source: community date_added: "2026-02-27"

Azure.ResourceManager.MongoDBAtlas SDK

Manage MongoDB Atlas Organizations as Azure ARM resources with unified billing through Azure Marketplace.

Package Information

| Property | Value | |----------|-------| | Package | Azure.ResourceManager.MongoDBAtlas | | Version | 1.0.0 (GA) | | API Version | 2025-06-01 | | Resource Type | MongoDB.Atlas/organizations | | NuGet | Azure.ResourceManager.MongoDBAtlas |

Installation

dotnet add package Azure.ResourceManager.MongoDBAtlas
dotnet add package Azure.Identity
dotnet add package Azure.ResourceManager

Important Scope Limitation

This SDK manages MongoDB Atlas Organizations as Azure ARM resources for marketplace integration. It does NOT directly manage:

  • Atlas clusters
  • Databases
  • Collections
  • Users/roles

For cluster management, use the MongoDB Atlas API directly after creating the organization.

Authentication

using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.MongoDBAtlas;
using Azure.ResourceManager.MongoDBAtlas.Models;

// Create ARM client with DefaultAzureCredential
var credential = new DefaultAzureCredential();
var armClient = new ArmClient(credential);

Core Types

| Type | Purpose | |------|---------| | MongoDBAtlasOrganizationResource | ARM resource representing an Atlas organization | | MongoDBAtlasOrganizationCollection | Collection of organizations in a resource group | | MongoDBAtlasOrganizationData | Data model for organization resource | | MongoDBAtlasOrganizationProperties | Organization-specific properties | | MongoDBAtlasMarketplaceDetails | Azure Marketplace subscription details | | MongoDBAtlasOfferDetails | Marketplace offer configuration | | MongoDBAtlasUserDetails | User information for the organization | | MongoDBAtlasPartnerProperties | MongoDB-specific properties (org name, ID) |

Workflows

Get Organization Collection

// Get resource group
var subscription = await armClient.GetDefaultSubscriptionAsync();
var resourceGroup = await subscription.GetResourceGroupAsync("my-resource-group");

// Get organizations collection
MongoDBAtlasOrganizationCollection organizations = 
    resourceGroup.Value.GetMongoDBAtlasOrganizations();

Create Organization

var organizationName = "my-atlas-org";
var location = AzureLocation.EastUS2;

// Build organization data
var organizationData = new MongoDBAtlasOrganizationData(location)
{
    Properties = new MongoDBAtlasOrganizationProperties(
        marketplace: new MongoDBAtlasMarketplaceDetails(
            subscriptionId: "your-azure-subscription-id",
            offerDetails: new MongoDBAtlasOfferDetails(
                publisherId: "mongodb",
                offerId: "mongodb_atlas_azure_native_prod",
                planId: "private_plan",
                planName: "Pay as You Go (Free) (Private)",
                termUnit: "P1M",
                termId: "gmz7xq9ge3py"
            )
        ),
        user: new MongoDBAtlasUserDetails(
            emailAddress: "admin@example.com",
            upn: "admin@example.com"
        )
        {
            FirstName = "Admin",
            LastName = "User"
        }
    )
    {
        PartnerProperties = new MongoDBAtlasPartnerProperties
        {
            OrganizationName = organizationName
        }
    },
    Tags = { ["Environment"] = "Production" }
};

// Create the organization (long-running operation)
var operation = await organizations.CreateOrUpdateAsync(
    WaitUntil.Completed,
    organizationName,
    organizationData
);

MongoDBAtlasOrganizationResource organization = operation.Value;
Console.WriteLine($"Created: {organization.Id}");

Get Existing Organization

// Option 1: From collection
MongoDBAtlasOrganizationResource org = 
    await organizations.GetAsync("my-atlas-org");

// Option 2: From resource identifier
var resourceId = MongoDBAtlasOrganizationResource.CreateResourceIdentifier(
    subscriptionId: "subscription-id",
    resourceGroupName: "my-resource-group",
    organizationName: "my-atlas-org"
);
MongoDBAtlasOrganizationResource org2 = 
    armClient.GetMongoDBAtlasOrganizationResource(resourceId);
await org2.GetAsync(); // Fetch data

List Organizations

// List in resource group
await foreach (var org in organizations.GetAllAsync())
{
    Console.WriteLine($"Org: {org.Data.Name}");
    Console.WriteLine($"  Location: {org.Data.Location}");
    Console.WriteLine($"  State: {org.Data.Properties?.ProvisioningState}");
}

// List across subscription
await foreach (var org in subscription.GetMongoDBAtlasOrganizationsAsync())
{
    Console.WriteLine($"Org: {org.Data.Name} in {org.Data.Id}");
}

Update Tags

// Add a single tag
await organization.AddTagAsync("CostCenter", "12345");

// Replace all tags
await organization.SetTagsAsync(new Dictionary<string, string>
{
    ["Environment"] = "Production",
    ["Team"] = "Platform"
});

// Remove a tag
await organization.RemoveTagAsync("OldTag");

Update Organization Properties

var patch = new MongoDBAtlasOrganizationPatch
{
    Tags = { ["UpdatedAt"] = DateTime.UtcNow.ToString("o") },
    Properties = new MongoDBAtlasOrganizationUpdateProperties
    {
        // Update user details if needed
        User = new MongoDBAtlasUserDetails(
            emailAddress: "newadmin@example.com",
            upn: "newadmin@example.com"
        )
    }
};

var updateOperation = await organization.UpdateAsync(
    WaitUntil.Completed,
    patch
);

Delete Organization

// Delete (long-running operation)
await organization.DeleteAsync(WaitUntil.Completed);

Model Properties Reference

MongoDBAtlasOrganizationProperties

| Property | Type | Description | |----------|------|-------------| | Marketplace | MongoDBAtlasMarketplaceDetails | Required. Marketplace subscription details | | User | MongoDBAtlasUserDetails | Required. Organization admin user | | PartnerProperties | MongoDBAtlasPartnerProperties | MongoDB-specific properties | | ProvisioningState | MongoDBAtlasResourceProvisioningState | Read-only. Current provisioning state |

MongoDBAtlasMarketplaceDetails

| Property | Type | Description | |----------|------|-------------| | SubscriptionId | string | Required. Azure subscription ID for billing | | OfferDetails | MongoDBAtlasOfferDetails | Required. Marketplace offer configuration | | SubscriptionStatus | MarketplaceSubscriptionStatus | Read-only. Subscription status |

MongoDBAtlasOfferDetails

| Property | Type | Description | |----------|------|-------------| | PublisherId | string | Required. Publisher ID (typically "mongodb") | | OfferId | string | Required. Offer ID | | PlanId | string | Required. Plan ID | | PlanName | string | Required. Display name of the plan | | TermUnit | string | Required. Billing term unit (e.g., "P1M") | | TermId | string | Required. Term identifier |

MongoDBAtlasUserDetails

| Property | Type | Description | |----------|------|-------------| | EmailAddress | string | Required. User email address | | Upn | string | Required. User principal name | | FirstName | string | Optional. User first name | | LastName | string | Optional. User last name |

MongoDBAtlasPartnerProperties

| Property | Type | Description | |----------|------|-------------| | OrganizationName | string | Name of the MongoDB Atlas organization | | OrganizationId | string | Read-only. MongoDB Atlas organization ID |

Provisioning States

| State | Description | |-------|-------------| | Succeeded | Resource provisioned successfully | | Failed | Provisioning failed | | Canceled | Provisioning was canceled | | Provisioning | Resource is being provisioned | | Updating | Resource is being updated | | Deleting | Resource is being deleted | | Accepted | Request accepted, provisioning starting |

Marketplace Subscription Status

| Status | Description | |--------|-------------| | PendingFulfillmentStart | Subscription pending activation | | Subscribed | Active subscription | | Suspended | Subscription suspended | | Unsubscribed | Subscription canceled |

Best Practices

Use Async Methods

// Prefer async for all operations
var org = await organizations.GetAsync("my-org");
await org.Value.AddTagAsync("key", "value");

Handle Long-Running Operations

// Wait for completion
var operation = await organizations.CreateOrUpdateAsync(
    WaitUntil.Completed,  // Blocks until done
    name,
    data
);

// Or start and poll later
var operation = await organizations.CreateOrUpdateAsync(
    WaitUntil.Started,  // Returns immediately
    name,
    data
);

// Poll for completion
while (!operation.HasCompleted)
{
    await Task.Delay(TimeSpan.FromSeconds(5));
    await operation.UpdateStatusAsync();
}

Check Provisioning State

var org = await organizations.GetAsync("my-org");
if (org.Value.Data.Properties?.ProvisioningState == 
    MongoDBAtlasResourceProvisioningState.Succeeded)
{
    Console.WriteLine("Organization is ready");
}

Use Resource Identifiers

// Create identifier without API call
var resourceId = MongoDBAtlasOrganizationResource.CreateResourceIdentifier(
    subscriptionId,
    resourceGroupName,
    organizationName
);

// Get resource handle (no data yet)
var orgResource = armClient.GetMongoDBAtlasOrganizationResource(resourceId);

// Fetch data when needed
var response = await orgResource.GetAsync();

Common Errors

| Error | Cause | Solution | |-------|-------|----------| | ResourceNotFound | Organization doesn't exist | Verify name and resource group | | AuthorizationFailed | Insufficient permissions | Check RBAC roles on resource group | | InvalidParameter | Missing required properties | Ensure all required fields are set | | MarketplaceError | Marketplace subscription issue | Verify offer details and subscription |

Related Resources

When to Use

This skill is applicable to execute the workflow or actions described in the overview.

Limitations

  • Use this skill only when the task clearly matches the scope described above.
  • Do not treat the output as a substitute for environment-specific validation, testing, or expert review.
  • Stop and ask for clarification if required inputs, permissions, safety boundaries, or success criteria are missing.

Use this skill

Most skills are portable instruction packages. Claude Code supports SKILL.md directly. Other agents can use adapted files like AGENTS.md, .cursorrules, and GEMINI.md.

Claude Code

Save SKILL.md into your Claude Skills folder, then restart Claude Code.

mkdir -p ~/.claude/skills/azureresourcemanagermongodbatlas-sdk && curl -L "https://raw.githubusercontent.com/sickn33/antigravity-awesome-skills/HEAD/plugins/antigravity-awesome-skills-claude/skills/azure-mgmt-mongodbatlas-dotnet/SKILL.md" -o ~/.claude/skills/azureresourcemanagermongodbatlas-sdk/SKILL.md

Installs to ~/.claude/skills/azureresourcemanagermongodbatlas-sdk/SKILL.md.

Reviews

No reviews yet. Be the first to review this skill.

No signup required

Stats

Installs0
GitHub Stars34.5k
Forks5697