Installer avec Codex ou Claude Copiez ce prompt, collez-le dans Codex, Claude ou un autre assistant, puis laissez-le vérifier la page du skill et l'installer pour vous.
Une commande directe contourne le prompt de vérification. Examinez la source avant de l'exécuter.
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 DefaultAzureCredentialvar 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 groupvar 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 datavar 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}");
// List in resource groupawaitforeach (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 subscriptionawaitforeach (var org in subscription.GetMongoDBAtlasOrganizationsAsync())
{
Console.WriteLine($"Org: {org.Data.Name} in {org.Data.Id}");
}
Update Tags
// Add a single tagawait organization.AddTagAsync("CostCenter", "12345");
// Replace all tagsawait organization.SetTagsAsync(new Dictionary<string, string>
{
["Environment"] = "Production",
["Team"] = "Platform"
});
// Remove a tagawait 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
);
// Prefer async for all operationsvar org = await organizations.GetAsync("my-org");
await org.Value.AddTagAsync("key", "value");
Handle Long-Running Operations
// Wait for completionvar operation = await organizations.CreateOrUpdateAsync(
WaitUntil.Completed, // Blocks until done
name,
data
);
// Or start and poll latervar operation = await organizations.CreateOrUpdateAsync(
WaitUntil.Started, // Returns immediately
name,
data
);
// Poll for completionwhile (!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 callvar resourceId = MongoDBAtlasOrganizationResource.CreateResourceIdentifier(
subscriptionId,
resourceGroupName,
organizationName
);
// Get resource handle (no data yet)var orgResource = armClient.GetMongoDBAtlasOrganizationResource(resourceId);
// Fetch data when neededvar response = await orgResource.GetAsync();