{
  "schema": "https://ai-atoms.com/schemas/skill-v1.json",
  "type": "skill",
  "id": "skill/azure-mgmt-fabric-py",
  "version": "1.0.1",
  "name": "Azure Mgmt Fabric Py",
  "description": "Azure Fabric Management SDK for Python. Use for managing Microsoft Fabric capacities and resources.\nTriggers: \"azure-mgmt-fabric\", \"FabricMgmtClient\", \"Fabric capacity\", \"Microsoft Fabric\", \"Power BI capacity\".",
  "system_prompt_fragment": "# Azure Fabric Management SDK for Python\n\nManage Microsoft Fabric capacities and resources programmatically.\n\n## Installation\n\n```bash\npip install azure-mgmt-fabric\npip install azure-identity\n```\n\n## Environment Variables\n\n```bash\nAZURE_SUBSCRIPTION_ID=<your-subscription-id>\nAZURE_RESOURCE_GROUP=<your-resource-group>\n```\n\n## Authentication\n\n```python\nfrom azure.identity import DefaultAzureCredential\nfrom azure.mgmt.fabric import FabricMgmtClient\nimport os\n\ncredential = DefaultAzureCredential()\nclient = FabricMgmtClient(\n    credential=credential,\n    subscription_id=os.environ[\"AZURE_SUBSCRIPTION_ID\"]\n)\n```\n\n## Create Fabric Capacity\n\n```python\nfrom azure.mgmt.fabric import FabricMgmtClient\nfrom azure.mgmt.fabric.models import FabricCapacity, FabricCapacityProperties, CapacitySku\nfrom azure.identity import DefaultAzureCredential\nimport os\n\ncredential = DefaultAzureCredential()\nclient = FabricMgmtClient(\n    credential=credential,\n    subscription_id=os.environ[\"AZURE_SUBSCRIPTION_ID\"]\n)\n\nresource_group = os.environ[\"AZURE_RESOURCE_GROUP\"]\ncapacity_name = \"myfabriccapacity\"\n\ncapacity = client.fabric_capacities.begin_create_or_update(\n    resource_group_name=resource_group,\n    capacity_name=capacity_name,\n    resource=FabricCapacity(\n        location=\"eastus\",\n        sku=CapacitySku(\n            name=\"F2\",  # Fabric SKU\n            tier=\"Fabric\"\n        ),\n        properties=FabricCapacityProperties(\n            administration=FabricCapacityAdministration(\n                members=[\"user@contoso.com\"]\n            )\n        )\n    )\n).result()\n\nprint(f\"Capacity created: {capacity.name}\")\n```\n\n## Get Capacity Details\n\n```python\ncapacity = client.fabric_capacities.get(\n    resource_group_name=resource_group,\n    capacity_name=capacity_name\n)\n\nprint(f\"Capacity: {capacity.name}\")\nprint(f\"SKU: {capacity.sku.name}\")\nprint(f\"State: {capacity.properties.state}\")\nprint(f\"Location: {capacity.location}\")\n```\n\n## List Capacities in Resource Group\n\n```python\ncapacities = client.fabric_capacities.list_by_resource_group(\n    resource_group_name=resource_group\n)\n\nfor capacity in capacities:\n    print(f\"Capacity: {capacity.name} - SKU: {capacity.sku.name}\")\n```\n\n## List All Capacities in Subscription\n\n```python\nall_capacities = client.fabric_capacities.list_by_subscription()\n\nfor capacity in all_capacities:\n    print(f\"Capacity: {capacity.name} in {capacity.location}\")\n```\n\n## Update Capacity\n\n```python\nfrom azure.mgmt.fabric.models import FabricCapacityUpdate, CapacitySku\n\nupdated = client.fabric_capacities.begin_update(\n    resource_group_name=resource_group,\n    capacity_name=capacity_name,\n    properties=FabricCapacityUpdate(\n        sku=CapacitySku(\n            name=\"F4\",  # Scale up\n            tier=\"Fabric\"\n        ),\n        tags={\"environment\": \"production\"}\n    )\n).result()\n\nprint(f\"Updated SKU: {updated.sku.name}\")\n```\n\n## Suspend Capacity\n\nPause capacity to stop billing:\n\n```python\nclient.fabric_capacities.begin_suspend(\n    resource_group_name=resource_group,\n    capacity_name=capacity_name\n).result()\n\nprint(\"Capacity suspended\")\n```\n\n## Resume Capacity\n\nResume a paused capacity:\n\n```python\nclient.fabric_capacities.begin_resume(\n    resource_group_name=resource_group,\n    capacity_name=capacity_name\n).result()\n\nprint(\"Capacity resumed\")\n```\n\n## Delete Capacity\n\n```python\nclient.fabric_capacities.begin_delete(\n    resource_group_name=resource_group,\n    capacity_name=capacity_name\n).result()\n\nprint(\"Capacity deleted\")\n```\n\n## Check Name Availability\n\n```python\nfrom azure.mgmt.fabric.models import CheckNameAvailabilityRequest\n\nresult = client.fabric_capacities.check_name_availability(\n    location=\"eastus\",\n    body=CheckNameAvailabilityRequest(\n        name=\"my-new-capacity\",\n        type=\"Microsoft.Fabric/capacities\"\n    )\n)\n\nif result.name_available:\n    print(\"Name is available\")\nelse:\n    print(f\"Name not available: {result.reason}\")\n```\n\n## List Available SKUs\n\n```python\nskus = client.fabric_capacities.list_skus(\n    resource_group_name=resource_group,\n    capacity_name=capacity_name\n)\n\nfor sku in skus:\n    print(f\"SKU: {sku.name} - Tier: {sku.tier}\")\n```\n\n## Client Operations\n\n| Operation | Method |\n|-----------|--------|\n| `client.fabric_capacities` | Capacity CRUD operations |\n| `client.operations` | List available operations |\n\n## Fabric SKUs\n\n| SKU | Description | CUs |\n|-----|-------------|-----|\n| `F2` | Entry level | 2 Capacity Units |\n| `F4` | Small | 4 Capacity Units |\n| `F8` | Medium | 8 Capacity Units |\n| `F16` | Large | 16 Capacity Units |\n| `F32` | X-Large | 32 Capacity Units |\n| `F64` | 2X-Large | 64 Capacity Units |\n| `F128` | 4X-Large | 128 Capacity Units |\n| `F256` | 8X-Large | 256 Capacity Units |\n| `F512` | 16X-Large | 512 Capacity Units |\n| `F1024` | 32X-Large | 1024 Capacity Units |\n| `F2048` | 64X-Large | 2048 Capacity Units |\n\n## Capacity States\n\n| State | Description |\n|-------|-------------|\n| `Active` | Capacity is running |\n| `Paused` | Capacity is suspended (no billing) |\n| `Provisioning` | Being created |\n| `Updating` | Being modified |\n| `Deleting` | Being removed |\n| `Failed` | Operation failed |\n\n## Long-Running Operations\n\nAll mutating operations are long-running (LRO). Use `.result()` to wait:\n\n```python\n# Synchronous wait\ncapacity = client.fabric_capacities.begin_create_or_update(...).result()\n\n# Or poll manually\npoller = client.fabric_capacities.begin_create_or_update(...)\nwhile not poller.done():\n    print(f\"Status: {poller.status()}\")\n    time.sleep(5)\ncapacity = poller.result()\n```\n\n## Best Practices\n\n1. **Use DefaultAzureCredential** for authentication\n2. **Suspend unused capacities** to reduce costs\n3. **Start with smaller SKUs** and scale up as needed\n4. **Use tags** for cost tracking and organization\n5. **Check name availability** before creating capacities\n6. **Handle LRO properly** — don't assume immediate completion\n7. **Set up capacity admins** — specify users who can manage workspaces\n8. **Monitor capacity usage** via Azure Monitor metrics\n\n## When to Use\nThis skill is applicable to execute the workflow or actions described in the overview.",
  "applicable_domains": [
    "devops"
  ],
  "category": "devops",
  "invocation": [
    "/azure-mgmt-fabric-py"
  ],
  "authored_by": "claudeskills.in community",
  "source_url": "https://claudeskills.in/skill/azure-mgmt-fabric-py",
  "provenance": {
    "source": "claudeskills.in",
    "source_url": "https://claudeskills.in/skill/azure-mgmt-fabric-py",
    "license": "unknown",
    "imported_at": "2026-09-03",
    "notes": "Aggregated by claudeskills.in from community GitHub lists."
  },
  "tags": [
    "claudeskills",
    "devops"
  ],
  "lifecycle": "draft"
}