salesforce-development
Expert patterns for Salesforce platform development including Lightning Web Components (LWC), Apex triggers and classes, REST/Bulk APIs, Connected Apps, and Salesforce DX with scratch orgs and 2nd ...
azure-mgmt-mongodbatlas-dotnet
Manage MongoDB Atlas Organizations as Azure ARM resources using Azure.ResourceManager.MongoDBAtlas SDK. Use when creating, updating, listing, or deleting MongoDB Atlas organizations through Azure M...
Full skill instructions
Manage MongoDB Atlas Organizations as Azure ARM resources with unified billing through Azure Marketplace.
| 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 |
dotnet add package Azure.ResourceManager.MongoDBAtlas
dotnet add package Azure.Identity
dotnet add package Azure.ResourceManager
This SDK manages MongoDB Atlas Organizations as Azure ARM resources for marketplace integration. It does NOT directly manage:
For cluster management, use the MongoDB Atlas API directly after creating the organization.
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);
| 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) |
// Get resource group
var subscription = await armClient.GetDefaultSubscriptionAsync();
var resourceGroup = await subscription.GetResourceGroupAsync("my-resource-group");
// Get organizations collection
MongoDBAtlasOrganizationCollection organizations =
resourceGroup.Value.GetMongoDBAtlasOrganizations();
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: "[email protected]",
upn: "[email protected]"
)
{
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}");
// 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 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}");
}
// 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");
var patch = new MongoDBAtlasOrganizationPatch
{
Tags = { ["UpdatedAt"] = DateTime.UtcNow.ToString("o") },
Properties = new MongoDBAtlasOrganizationUpdateProperties
{
// Update user details if needed
User = new MongoDBAtlasUserDetails(
emailAddress: "[email protected]",
upn: "[email protected]"
)
}
};
var updateOperation = await organization.UpdateAsync(
WaitUntil.Completed,
patch
);
// Delete (long-running operation)
await organization.DeleteAsync(WaitUntil.Completed);
| 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 |
| Property | Type | Description |
|---|---|---|
SubscriptionId | string | Required. Azure subscription ID for billing |
OfferDetails | MongoDBAtlasOfferDetails | Required. Marketplace offer configuration |
SubscriptionStatus | MarketplaceSubscriptionStatus | Read-only. Subscription status |
| 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 |
| 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 |
| Property | Type | Description |
|---|---|---|
OrganizationName | string | Name of the MongoDB Atlas organization |
OrganizationId | string | Read-only. MongoDB Atlas organization ID |
| 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 |
| Status | Description |
|---|---|
PendingFulfillmentStart | Subscription pending activation |
Subscribed | Active subscription |
Suspended | Subscription suspended |
Unsubscribed | Subscription canceled |
// Prefer async for all operations
var org = await organizations.GetAsync("my-org");
await org.Value.AddTagAsync("key", "value");
// 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();
}
var org = await organizations.GetAsync("my-org");
if (org.Value.Data.Properties?.ProvisioningState ==
MongoDBAtlasResourceProvisioningState.Succeeded)
{
Console.WriteLine("Organization is ready");
}
// 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();
| 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 |
This skill is applicable to execute the workflow or actions described in the overview.
Expert patterns for Salesforce platform development including Lightning Web Components (LWC), Apex triggers and classes, REST/Bulk APIs, Connected Apps, and Salesforce DX with scratch orgs and 2nd ...
Instrument applications with Azure Monitor and OpenTelemetry for JavaScript (@azure/monitor-opentelemetry). Use when adding distributed tracing, metrics, and logs to Node.js applications with Appli...
Create and optimize popups, modals, overlays, slide-ins, and banners to increase conversions without harming user experience or brand trust.
Configure mutual TLS (mTLS) for zero-trust service-to-service communication. Use when implementing zero-trust networking, certificate management, or securing internal service communication.
Build Azure Cosmos DB NoSQL services with Python/FastAPI following production-grade patterns. Use when implementing database client setup with dual auth (DefaultAzureCredential + emulator), service...
Terraform infrastructure as code workflow for provisioning cloud resources, creating reusable modules, and managing infrastructure at scale.
Automate OneDrive file management, search, uploads, downloads, sharing, permissions, and folder operations via Rube MCP (Composio). Always search tools first for current schemas.
Implement memory-safe programming with RAII, ownership, smart pointers, and resource management across Rust, C++, and C. Use when writing safe systems code, managing resources, or preventing memory...
Handle errors as values using fp-ts Either and TaskEither for cleaner, more predictable TypeScript code. Use when implementing error handling patterns with fp-ts.
You are a code migration expert specializing in transitioning codebases between frameworks, languages, versions, and platforms. Generate comprehensive migration plans, automated migration scripts, and
Real-time, bidirectional voice conversations with AI assistants using WebSocket technology.
A hybrid memory system that provides persistent, searchable knowledge management for AI agents (Architecture, Patterns, Decisions).
Generate, edit, and beat-sync AI video with leading models in one workspace.
The world's fastest calendar for remote work
Transform Your Design with AI Designer by ImgCreator.ai
Revolutionizing Video Production with AI-Powered Creativity
Extend an image past the frame and let AI fill the new aspect ratio.
Discover your celebrity doppelgänger with StarByFace!
ChainClarity explains 700+ crypto whitepapers in plain English, with layered summaries, comparisons, research tools, alerts, and a $4.99 Pro plan.
Opus.ai: Revolutionize Your Web Experience