Download .github/plugins/azure-sdk-dotnet/skills/azure-mgmt-fabric-dotnet/SKILL.md from the publisher, or copy the path and open the repository. PlugMCP lists the skill and does not host the file.
Where does azure-mgmt-fabric-dotnet live?
The publisher keeps it at https://github.com/microsoft/skills.
Which agents can use azure-mgmt-fabric-dotnet?
Claude, Cursor, and Codex can read a SKILL.md you add from the publisher's repository.
|
name: azure-mgmt-fabric-dotnet
description: |
Azure Resource Manager SDK for Fabric in .NET. Use for MANAGEMENT PLANE operations: provisioning, scaling, suspending/resuming Microsoft Fabric capacities, checking name availability, and listing SKUs via Azure Resource Manager. Triggers: "Fabric capacity", "create capacity", "suspend capacity", "resume capacity", "Fabric SKU", "provision Fabric", "ARM Fabric", "FabricCapacityResource".
license: MIT
metadata:
author: Microsoft
version: "1.0.0"
package: Azure.ResourceManager.Fabric
Azure.ResourceManager.Fabric (.NET)
Management plane SDK for provisioning and managing Microsoft Fabric capacity resources via Azure Resource Manager.
Management Plane Only
This SDK manages Fabric capacities (compute resources). For working with Fabric workspaces, lakehouses, warehouses, and data items, use the Microsoft Fabric REST API or data plane SDKs.
Current Version: 1.0.0 (GA - September 2025) API Version: 2023-11-01 Target Frameworks: .NET 8.0, .NET Standard 2.0
Environment Variables
AZURE_SUBSCRIPTION_ID=<your-subscription-id> # Required: Azure subscription ID
AZURE_TOKEN_CREDENTIALS=prod # Required only if DefaultAzureCredential is used in production
AZURE_TENANT_ID=<tenant-id> # For service principal auth (optional)
AZURE_CLIENT_ID=<client-id> # For service principal auth (optional)
AZURE_CLIENT_SECRET=<client-secret> # For service principal auth (optional)
Authentication
using Azure.Identity;
using Azure.ResourceManager;
using Azure.ResourceManager.Fabric;
// 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);
// Get subscription
var subscription = await armClient.GetDefaultSubscriptionAsync();
// In a resource group
await foreach (var cap in resourceGroup.Value.GetFabricCapacities())
{
Console.WriteLine($"- {cap.Data.Name} ({cap.Data.Sku.Name})");
}
// In a subscription
await foreach (var cap in subscription.GetFabricCapacitiesAsync())
{
Console.WriteLine($"- {cap.Data.Name} in {cap.Data.Location}");
}
7. Check Name Availability
var checkContent = new FabricNameAvailabilityContent
{
Name = "my-new-capacity",
ResourceType = "Microsoft.Fabric/capacities"
};
var result = await subscription.CheckFabricCapacityNameAvailabilityAsync(
AzureLocation.WestUS2,
checkContent);
if (result.Value.IsNameAvailable == true)
{
Console.WriteLine("Name is available!");
}
else
{
Console.WriteLine($"Name unavailable: {result.Value.Reason} - {result.Value.Message}");
}
8. List Available SKUs
// List all SKUs available in subscription
await foreach (var skuDetails in subscription.GetSkusFabricCapacitiesAsync())
{
Console.WriteLine($"SKU: {skuDetails.Name}");
Console.WriteLine($" Resource Type: {skuDetails.ResourceType}");
foreach (var location in skuDetails.Locations)
{
Console.WriteLine($" Location: {location}");
}
}
// List SKUs available for an existing capacity (for scaling)
await foreach (var skuDetails in capacity.Value.GetSkusForCapacityAsync())
{
Console.WriteLine($"Can scale to: {skuDetails.Sku.Name}");
}
SKU Reference
SKU Name
Capacity Units (CU)
Power BI Equivalent
F2
2
-
F4
4
-
F8
8
EM1/A1
F16
16
EM2/A2
F32
32
EM3/A3
F64
64
P1/A4
F128
128
P2/A5
F256
256
P3/A6
F512
512
P4/A7
F1024
1024
P5/A8
F2048
2048
-
Key Types Reference
Type
Purpose
ArmClient
Entry point for all ARM operations
FabricCapacityResource
Represents a Fabric capacity instance
FabricCapacityCollection
Collection for capacity CRUD operations
FabricCapacityData
Capacity creation/read data model
FabricCapacityPatch
Capacity update payload
FabricCapacityProperties
Capacity properties (administration, state)
FabricCapacityAdministration
Admin members configuration
FabricSku
SKU configuration (name and tier)
FabricSkuTier
Pricing tier (currently only "Fabric")
FabricProvisioningState
Provisioning states (Succeeded, Failed, etc.)
FabricResourceState
Resource states (Active, Suspended, etc.)
FabricNameAvailabilityContent
Name availability check request
FabricNameAvailabilityResult
Name availability check response
Provisioning and Resource States
Provisioning States (FabricProvisioningState)
Succeeded - Operation completed successfully
Failed - Operation failed
Canceled - Operation was canceled
Deleting - Capacity is being deleted
Provisioning - Initial provisioning in progress
Updating - Update operation in progress
Resource States (FabricResourceState)
Active - Capacity is running and available
Provisioning - Being provisioned
Failed - In failed state
Updating - Being updated
Deleting - Being deleted
Suspending - Transitioning to suspended
Suspended - Suspended (not billing for compute)
Pausing - Transitioning to paused
Paused - Paused
Resuming - Resuming from suspended/paused
Scaling - Scaling to different SKU
Preparing - Preparing resources
Best Practices
Use WaitUntil.Completed for operations that must finish before proceeding
Use WaitUntil.Started when you want to poll manually or run operations in parallel
Use DefaultAzureCredential — never hardcode credentials
Handle RequestFailedException for ARM API errors
Use CreateOrUpdateAsync for idempotent operations
Suspend when not in use — Fabric capacities bill for compute even when idle
Check provisioning state before performing operations on a capacity
Use appropriate SKU — Start small (F2/F4) for dev/test, scale up for production
Error Handling
using Azure;
try
{
var operation = await capacityCollection.CreateOrUpdateAsync(
WaitUntil.Completed, capacityName, capacityData);
}
catch (RequestFailedException ex) when (ex.Status == 409)
{
Console.WriteLine("Capacity already exists or conflict");
}
catch (RequestFailedException ex) when (ex.Status == 400)
{
Console.WriteLine($"Invalid configuration: {ex.Message}");
}
catch (RequestFailedException ex) when (ex.Status == 403)
{
Console.WriteLine("Insufficient permissions or quota exceeded");
}
catch (RequestFailedException ex)
{
Console.WriteLine($"ARM Error: {ex.Status} - {ex.ErrorCode}: {ex.Message}");
}
Common Pitfalls
Capacity names must be globally unique — Fabric capacity names must be unique across all Azure subscriptions
Suspend doesn't delete — Suspended capacities still exist but don't bill for compute
SKU changes may require downtime — Scaling operations can take several minutes
Admin UPNs must be valid — Capacity administrators must be valid Azure AD users
Location constraints — Not all SKUs are available in all regions; use GetSkusFabricCapacitiesAsync to check
Long provisioning times — Capacity creation can take 5-15 minutes
Download .github/plugins/azure-sdk-dotnet/skills/azure-mgmt-fabric-dotnet/SKILL.md from the publisher, or copy the path and open the repository. PlugMCP lists the skill and does not host the file.
Where does azure-mgmt-fabric-dotnet live?
The publisher keeps it at https://github.com/microsoft/skills.
Which agents can use azure-mgmt-fabric-dotnet?
Claude, Cursor, and Codex can read a SKILL.md you add from the publisher's repository.