オプション
家 Skill DevOps と CI/CD azure-mgmt-mongodbatlas-dotnet

azure-mgmt-mongodbatlas-dotnet

microsoft/skills microsoft/skills

Azure Marketplace を通じて、MongoDB Atlas 組織を Azure ARM リソースとして管理し、統一された課金体系を利用できます。Azure.ResourceManager.MongoDBAtlas SDK を使用して、Atlas 組織の作成、更新、一覧表示、削除を行うことができます。

...すべて拡張します
0
更新された時間 2026年9月15日

Azure.ResourceManager.MongoDBAtlas SDK

Azure Marketplace を通じて、MongoDB Atlas 組織を Azure ARM リソースとして管理し、統一された課金を実現します。

パッケージ情報

プロパティ
パッケージ Azure.ResourceManager.MongoDBAtlas
バージョン 1.0.0 (GA)
API バージョン 2025-06-01
リソースタイプ MongoDB.Atlas/organizations
NuGet Azure.ResourceManager.MongoDBAtlas

インストール

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

重要なスコープの制限

この SDK は、マーケットプレイスとの統合のために、MongoDB Atlas 組織を Azure ARM リソースとして管理します。以下の項目を直接管理することはありません:

  • Atlas クラスター
  • データベース
  • コレクション
  • ユーザー/ロール

クラスターの管理については、組織を作成した後、MongoDB Atlas API を直接使用してください。

環境変数

AZURE_SUBSCRIPTION_ID= # 必須: Azure サブスクリプション ID
AZURE_RESOURCE_GROUP= # 必須: Azure リソースグループ名
AZURE_TOKEN_CREDENTIALS=prod  # 本番環境で DefaultAzureCredential を使用する場合にのみ必須
AZURE_TENANT_ID= # サービスプリンシパル認証用(オプション)
AZURE_CLIENT_ID= # サービスプリンシパル認証用(オプション)
AZURE_CLIENT_SECRET= # サービスプリンシパル認証用(オプション)

認証

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

// ローカル開発環境: DefaultAzureCredential。 本番環境:AZURE_TOKEN_CREDENTIALS=prod または AZURE_TOKEN_CREDENTIALS=を設定
var credential = new DefaultAzureCredential(
    DefaultAzureCredential.DefaultEnvironmentVariableName
);
// または、本番環境では特定の認証情報を直接使用することも可能です:
// https://learn.microsoft.com/dotnet/api/overview/azure/identity-readme?view=azure-dotnet#credential-classes を参照してください
// var credential = new ManagedIdentityCredential();
var armClient = new ArmClient(credential);

コア型

目的
MongoDBAtlasOrganizationResource Atlas 組織を表す ARM リソース
MongoDBAtlasOrganizationCollection リソースグループ内の組織のコレクション
MongoDBAtlasOrganizationData 組織リソースのデータモデル
MongoDBAtlasOrganizationProperties 組織固有のプロパティ
MongoDBAtlasMarketplaceDetails Azure Marketplaceのサブスクリプション詳細
MongoDBAtlasOfferDetails Marketplaceオファーの構成
MongoDBAtlasUserDetails 組織のユーザー情報
MongoDBAtlasPartnerProperties MongoDB固有のプロパティ(組織名、ID)

ワークフロー

組織コレクションの取得

// リソースグループを取得
var subscription = await armClient.GetDefaultSubscriptionAsync();
var resourceGroup = await subscription.GetResourceGroupAsync("my-resource-group");

// 組織コレクションを取得
MongoDBAtlasOrganizationCollection organizations = 
    resourceGroup.Value.GetMongoDBAtlasOrganizations();

組織の作成

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

// 組織データの構築
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: "従量課金 (無料) (プライベート)",
                契約単位: "P1M",
                契約ID: "gmz7xq9ge3py"
            )
        ),
        user: new MongoDBAtlasUserDetails(
            emailAddress: "[email protected]",
            upn: "[email protected]"
        )
        {
            FirstName = "Admin",
            LastName = "User"
        }
    )
    {
        PartnerProperties = new MongoDBAtlasPartnerProperties
        {
            OrganizationName = organizationName
        }
    },
    Tags = { ["Environment"] = "Production" }
};

// 組織を作成する(長時間かかる操作)
var operation = await organizations.CreateOrUpdateAsync(
    WaitUntil.Completed,
    organizationName,
    organizationData
);

MongoDBAtlasOrganizationResource organization = operation.Value;
Console.WriteLine($"作成済み: {organization.Id}");

既存の組織の取得

// 方法 1: コレクションから
MongoDBAtlasOrganizationResource org = 
    await organizations.GetAsync("my-atlas-org");

// 方法 2: リソース識別子から
var resourceId = MongoDBAtlasOrganizationResource.CreateResourceIdentifier(
    subscriptionId: "subscription-id",
    resourceGroupName: "my-resource-group",
    organizationName: "my-atlas-org"
);
MongoDBAtlasOrganizationResource org2 = 
    armClient.GetMongoDBAtlasOrganizationResource(resourceId);
await org2.GetAsync(); // データを取得

組織の一覧表示

// リソースグループ内の組織の一覧
await foreach (var org in organizations.GetAllAsync())
{
    Console.WriteLine($"組織: {org.Data.Name}");
    Console.WriteLine($"  Location: {org.Data.Location}");
    Console.WriteLine($"  State: {org.Data.Properties?.ProvisioningState}");
}

// サブスクリプション全体の一覧表示
await foreach (var org in subscription.GetMongoDBAtlasOrganizationsAsync())
{
    Console.WriteLine($"Org: {org.Data.Name} in {org.Data.Id}");
}

タグの更新

// タグを1つ追加
await organization.AddTagAsync("CostCenter", "12345");

// すべてのタグを置き換え
await organization.SetTagsAsync(new Dictionary{
    ["Environment"] = "Production",
    ["Team"] = "Platform"
});

// タグを削除
await organization.RemoveTagAsync("OldTag");

組織のプロパティを更新する

var patch = new MongoDBAtlasOrganizationPatch
{
    Tags = { ["UpdatedAt"] = DateTime.UtcNow.ToString("o") },
    Properties = new MongoDBAtlasOrganizationUpdateProperties
    {
        // 必要に応じてユーザーの詳細を更新
        User = new MongoDBAtlasUserDetails(
            emailAddress: "[email protected]",
            upn: "[email protected]"
        )
    }
};

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

組織の削除

// 削除(長時間かかる操作)
await organization.DeleteAsync(WaitUntil.Completed);

モデルのプロパティリファレンス

MongoDBAtlasOrganizationProperties

プロパティ 説明
マーケットプレイス MongoDBAtlasMarketplaceDetails 必須。マーケットプレイスのサブスクリプション詳細
ユーザー MongoDBAtlasUserDetails 必須。組織の管理者ユーザー
PartnerProperties MongoDBAtlasPartnerProperties MongoDB固有のプロパティ
プロビジョニング状態 MongoDBAtlasResourceProvisioningState 読み取り専用。現在のプロビジョニング状態

MongoDBAtlasMarketplaceDetails

プロパティ 説明
SubscriptionId 文字列 必須。課金用の Azure サブスクリプション ID
オファーの詳細 MongoDBAtlasOfferDetails 必須。Marketplaceオファーの構成
SubscriptionStatus MarketplaceSubscriptionStatus 読み取り専用。サブスクリプションステータス

MongoDBAtlasOfferDetails

プロパティ タイプ 説明
PublisherId 文字列 必須。パブリッシャーID(通常は「mongodb」)
オファーID 文字列 必須。オファー ID
PlanId 文字列 必須。プランID
プラン名 文字列 必須。プランの表示名
TermUnit 文字列 必須。請求期間の単位(例:「P1M」)
TermId 文字列 必須。契約期間の識別子

MongoDBAtlasUserDetails

プロパティ 説明
EmailAddress 文字列 必須。ユーザーのメールアドレス
UPN 文字列 必須。ユーザーのプリンシパル名
FirstName 文字列 オプション。ユーザーのファーストネーム
LastName 文字列 省略可。ユーザーの姓

MongoDBAtlasPartnerProperties

プロパティ 説明
組織名 文字列 MongoDB Atlas 組織の名前
組織ID 文字列 読み取り専用。MongoDB Atlas 組織 ID

プロビジョニング状態

状態 説明
成功 リソースのプロビジョニングに成功しました
失敗 プロビジョニングに失敗しました
キャンセルされました プロビジョニングがキャンセルされました
プロビジョニング中 リソースのプロビジョニングが実行中です
更新中 リソースが更新中です
削除中 リソースを削除中です
承認されました リクエストが受理されました。プロビジョニングを開始します

マーケットプレイスのサブスクリプションステータス

ステータス 説明
履行開始待ち サブスクリプションの有効化待ち
購読済み 有効なサブスクリプション
一時停止中 サブスクリプションが一時停止されました
購読解除済み 購読がキャンセルされました

ベストプラクティス

非同期メソッドを使用する

// すべての操作で非同期メソッドを優先する
var org = await organizations.GetAsync("my-org");
await org.Value.AddTagAsync("key", "value");

長時間かかる操作の処理

// 完了を待つ
var operation = await organizations.CreateOrUpdateAsync(
    WaitUntil.Completed,  // 完了するまでブロックする
    name,
    data
);

// または、開始して後でポーリングする
var operation = await organizations.CreateOrUpdateAsync(
    WaitUntil.Completed,  // 完了するまでブロックする
    name,
    data
);

// 完了をポーリングする
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("組織の準備が完了しました");
}

リソース識別子の使用

// API呼び出しなしで識別子を作成
var resourceId = MongoDBAtlasOrganizationResource.CreateResourceIdentifier(
    subscriptionId,
    resourceGroupName,
    organizationName
);

// リソースハンドルを取得(まだデータはありません)
var orgResource = armClient.GetMongoDBAtlasOrganizationResource(resourceId);

// 必要に応じてデータを取得
var response = await orgResource.GetAsync();

よくあるエラー

エラー 原因 解決策
ResourceNotFound 組織が存在しません 名前とリソース グループを確認してください
AuthorizationFailed 権限不足 リソースグループのRBACロールを確認してください
無効なパラメータ 必須のプロパティが欠落しています すべての必須フィールドが設定されていることを確認してください
MarketplaceError Marketplaceのサブスクリプションに関する問題 オファーの詳細とサブスクリプションを確認してください

関連リソース

  • Microsoft Learn: Azure上のMongoDB Atlas
  • API リファレンス
  • .NET 向け Azure SDK
GitHubで見る
---
name: azure-mgmt-mongodbatlas-dotnet
description: Manage MongoDB Atlas Organizations as Azure ARM resources with unified billing through Azure Marketplace. Create, update, list, or delete Atlas organizations using the Azure.ResourceManager.MongoDBAtlas SDK.
license: MIT
---

# 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](https://www.nuget.org/packages/Azure.ResourceManager.MongoDBAtlas) |

## Installation

```bash
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.

## Environment Variables

```bash
AZURE_SUBSCRIPTION_ID=<your-subscription-id> # Required: Azure subscription ID
AZURE_RESOURCE_GROUP=<your-resource-group> # Required: Azure resource group name
AZURE_TOKEN_CREDENTIALS=prod  # Required only if DefaultAzureCredential is used in production
AZURE_TENANT_ID=<your-tenant-id> # For service principal auth (optional)
AZURE_CLIENT_ID=<your-client-id> # For service principal auth (optional)
AZURE_CLIENT_SECRET=<your-client-secret> # For service principal auth (optional)
```

## Authentication

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

// Local dev: DefaultAzureCredential. Production: set AZURE_TOKEN_CREDENTIALS=prod or AZURE_TOKEN_CREDENTIALS=<specific_credential>
var credential = new DefaultAzureCredential(
    DefaultAzureCredential.DefaultEnvironmentVariableName
);
// Or use a specific credential directly in production:
// See https://learn.microsoft.com/dotnet/api/overview/azure/identity-readme?view=azure-dotnet#credential-classes
// var credential = new ManagedIdentityCredential();
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

```csharp
// 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

```csharp
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}");
```

### Get Existing Organization

```csharp
// 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

```csharp
// 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

```csharp
// 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

```csharp
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 Organization

```csharp
// 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

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

### Handle Long-Running Operations

```csharp
// 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

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

### Use Resource Identifiers

```csharp
// 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

- [Microsoft Learn: MongoDB Atlas on Azure](https://learn.microsoft.com/en-us/azure/partner-solutions/mongodb-atlas/)
- [API Reference](https://learn.microsoft.com/en-us/dotnet/api/azure.resourcemanager.mongodbatlas)
- [Azure SDK for .NET](https://github.com/Azure/azure-sdk-for-net/tree/main/sdk/mongodbatlas)

すべてのファイル

1件のファイル

azure-mgmt-mongodbatlas-dotnetをインストール

スキルファイルをダウンロードし、.claude/skills/ ディレクトリに解凍してください。

ZIPをダウンロード

リポジトリをクローンし、スキルファイルをプロジェクトにコピーしてください。

git clone https://github.com/microsoft/skills/tree/main/.github/plugins/azure-sdk-dotnet/skills/azure-mgmt-mongodbatlas-dotnet # Copy SKILL.md to your .claude/skills/ directory

コピー コピー
クイックセットアップ: スキルフォルダを .claude/skills/ にコピーしてください。 Claude が自動的にそのスキルを検出して使用します。
リポジトリ microsoft/skills

関連スキル

base44-cli
更新された時間 2026年6月29日
klingai-upgrade-migration
更新された時間 2026年7月3日
Railway CLI Management
更新された時間 2026年7月2日
Verification &amp; Quality Assurance
更新された時間 2026年6月29日
OR