Skip to content

Capacity Administration

Fabric capacities provide compute and storage resources for workspaces. The Capacity API allows administrators to list capacities, view workspace assignments, and manage capacity-workspace relationships.

Required Permissions

Capacity management operations require Capacity Admin or Fabric Administrator permissions.

Getting a Capacity

import fabias

# By name
capacity = fabias.capacity("Premium-P1")

# By GUID
capacity = fabias.capacity("a1b2c3d4-...")

Listing Capacities

# List all capacities
for cap in fabias.capacities():
    print(f"{cap.displayName}: {cap.sku} in {cap.region}")

# Filter by name (case-insensitive substring match)
premium_caps = fabias.capacities(name="Premium")

Capacity Properties

capacity = fabias.capacity("Premium-P1")

print(f"Capacity ID: {capacity.id}")
print(f"Display Name: {capacity.displayName}")
print(f"SKU: {capacity.sku}")           # e.g., "F2", "F4", "P1"
print(f"Region: {capacity.region}")     # e.g., "West US 2"
print(f"State: {capacity.state}")       # e.g., "Active", "Paused"
print(f"Admins: {capacity.admins}")     # List of admin principal IDs

Managing Workspace Assignments

List Workspaces in a Capacity

capacity = fabias.capacity("Premium-P1")

for ws in capacity.workspaces():
    print(f"  {ws.name} ({ws.id})")

Assign Workspace to Capacity

capacity = fabias.capacity("Premium-P1")
ws = fabias.workspace("Analytics")

# Assign workspace to capacity
capacity.addWorkspace(ws)

You can also assign from the workspace side:

ws = fabias.workspace("Analytics")
new_capacity = fabias.capacity("Premium-P2")

# Set workspace capacity
ws.setCapacity(new_capacity)

Remove Workspace from Capacity

capacity = fabias.capacity("Premium-P1")
ws = fabias.workspace("Analytics")

# Unassign workspace from capacity
capacity.removeWorkspace(ws)

Refreshing Capacity Data

Capacity properties are lazy-loaded and cached. To force a refresh:

capacity = fabias.capacity("Premium-P1")

# Make changes via Azure Portal...

# Refresh local data
capacity.refresh()
print(f"Updated state: {capacity.state}")

Example: Capacity Report

import fabias

# List all capacities and their workspaces
for capacity in fabias.capacities():
    print(f"\n{capacity.displayName} ({capacity.sku})")
    print(f"  Region: {capacity.region}")
    print(f"  State: {capacity.state}")

    workspaces = capacity.workspaces()
    print(f"  Workspaces: {len(workspaces)}")

    for ws in workspaces:
        print(f"    - {ws.name}")

See Also