Azure PaaS Availability — Live Service Scanner
AUTHORITATIVE GUIDANCE — This skill teaches you when and how to invoke
the Get-AzPaaSAvailability module via terminal for real-time Azure PaaS
service scanning. The module is the execution engine; this skill is the
routing layer.
When to Use This Skill
Invoke this skill when the user wants to:
- Check real-time PaaS service availability across Azure regions
- Find which regions support specific SQL Database editions, vCore counts, or compute models
- Check Cosmos DB subscription-level region access (blocked, AZ-only, residency)
- See PostgreSQL Flexible Server tiers, IOPS, memory, and zone support per region
- See MySQL Flexible Server SKUs per server version (5.7/8.0/8.4/9.3)
- Find which regions have specific App Service plan tiers (with zone/Linux/container flags)
- Check Container Apps workload profiles (Consumption, D4-D32, E4-E32, GPU)
- See AKS Kubernetes version availability and upgrade paths per region
- Check Functions runtime stacks, versions, and deprecation dates
- See Storage SKUs per region with tier, kind, zone redundancy, and restrictions
- Check Azure NetApp Files regional access, logical zones, storage-to-network proximity, and quota headroom
- Validate static-tier services (Redis, Event Hubs, Service Bus, AI Search, APIM, etc.)
- Compare PaaS service coverage across multiple regions in a Region Health Matrix
- Export availability data to CSV/XLSX for reporting or planning
When NOT to Use This Skill
| Scenario |
Use Instead |
| VM SKU capacity, quota, or pricing |
azure-vm-availability (Get-AzVMAvailability) |
| AI model availability (OpenAI, Anthropic, etc.) |
Get-AzAIModelAvailability |
| Deploy PaaS resources or infrastructure |
azure-prepare → azure-validate → azure-deploy |
| General Azure service recommendation (no login) |
azure-compute or Azure docs |
| Azure quota management via CLI |
azure-quotas |
Prerequisites
Before running, verify these requirements. Stop and help the user fix any missing prerequisite.
1. Module Must Be On The Machine
# Check common locations
$paths = @(
"$env:USERPROFILE\Get-AzPaaSAvailability\AzPaaSAvailability",
"C:\Github\Personal\Get-AzPaaSAvailability\AzPaaSAvailability"
)
$found = $paths | Where-Object { Test-Path $_ } | Select-Object -First 1
if ($found) { Write-Host "Found: $found" } else { Write-Host "NOT FOUND" }
If not found, tell the user:
git clone https://github.com/ZacharyLuz/Get-AzPaaSAvailability.git
cd Get-AzPaaSAvailability
2. PowerShell 7+ Required
$PSVersionTable.PSVersion # Must be 7.0+
3. Azure Module & Login
Get-Module Az.Accounts -ListAvailable # Must be installed
Get-AzContext # Must have active login
If not logged in: Connect-AzAccount
Decision Tree
User request
│
├─ "What VM should I use for X workload?"
│ └─ Use azure-vm-availability or azure-compute (VM, not PaaS)
│
├─ "Which regions have Hyperscale SQL?"
│ └─ THIS SKILL → Get-AzSqlAvailability -Edition Hyperscale
│
├─ "Is Cosmos DB available in westeurope for my subscription?"
│ └─ THIS SKILL → Get-AzCosmosDBAvailability
│
├─ "What PostgreSQL SKUs are available in eastus?"
│ └─ THIS SKILL → Get-AzPostgreSqlAvailability
│
├─ "What AKS versions can I use in westus2?"
│ └─ THIS SKILL → Get-AzAksAvailability
│
├─ "Which App Service plans support zone redundancy?"
│ └─ THIS SKILL → Get-AzAppServiceAvailability
│
├─ "Is Redis Cache Enterprise available in my region?"
│ └─ THIS SKILL → Get-AzServiceTierAvailability -ServiceFilter Redis
│
├─ "Compare PaaS service coverage across US regions"
│ └─ THIS SKILL → Get-AzPaaSAvailability -RegionPreset USMajor
│
└─ "Export PaaS availability to Excel"
└─ THIS SKILL → Get-AzPaaSAvailability ... -Quiet | Export-AzPaaSAvailabilityReport
Core Workflows
Workflow 1: PaaS Scan (9 First-Class Services)
Scenario: Compare PaaS service availability across regions. The orchestrator scans 9 API-backed services. For the 15 static-tier services, call Get-AzServiceTierAvailability separately (see Workflow 7).
# Wrapper script — interactive region selection
.\Get-AzPaaSAvailability.ps1
# Wrapper script — automated, no prompts
.\Get-AzPaaSAvailability.ps1 -RegionPreset USMajor -NoPrompt
# Module — direct call (always use from Copilot)
Import-Module ./AzPaaSAvailability -Force
Get-AzPaaSAvailability -Region eastus,westus2,centralus
Always use the module approach from Copilot — it gives structured output.
Workflow 2: SQL Database / Managed Instance
Import-Module ./AzPaaSAvailability -Force
# All SQL Database SKUs in a region
Get-AzSqlAvailability -Region eastus
# Hyperscale only
Get-AzSqlAvailability -Region eastus,westus2 -Edition Hyperscale
# Serverless compute model
Get-AzSqlAvailability -Region eastus -ComputeModel Serverless
# SQL Managed Instance
Get-AzSqlAvailability -Region eastus -SqlResourceType ManagedInstance
# Include Visible/Disabled SKUs
Get-AzSqlAvailability -Region eastus -IncludeDisabled
Workflow 3: Cosmos DB Subscription Access
Import-Module ./AzPaaSAvailability -Force
# Check which regions your subscription can access
Get-AzCosmosDBAvailability -Region eastus,westeurope,southeastasia
Output shows: access flags, AZ support, residency restrictions per region.
Workflow 4: PostgreSQL / MySQL Flexible Server
Import-Module ./AzPaaSAvailability -Force
# PostgreSQL — tiers, vCores, IOPS, memory, zone support
Get-AzPostgreSqlAvailability -Region eastus,westus2
# MySQL — SKUs per server version (5.7/8.0/8.4/9.3)
Get-AzMySqlAvailability -Region eastus,westus2
Workflow 5: App Service / Container Apps / Functions
Import-Module ./AzPaaSAvailability -Force
# App Service plans per region (zone/Linux/Functions/container flags)
Get-AzAppServiceAvailability -Region eastus,westeurope
# Container Apps workload profiles (Consumption, D4-D32, GPU)
Get-AzContainerAppsAvailability -Region eastus,westus2
# Functions runtime stacks and versions (global catalog, not per-region)
Get-AzFunctionsAvailability
Workflow 6: AKS / Storage
Import-Module ./AzPaaSAvailability -Force
# AKS Kubernetes versions and upgrade paths
Get-AzAksAvailability -Region eastus,westus2
# Storage SKUs (tier, kind, zones, restrictions)
Get-AzStorageAvailability -Region eastus,westus2
Workflow 7: Static-Tier Services (Redis, Event Hubs, Service Bus, etc.)
Import-Module ./AzPaaSAvailability -Force
# All 15 static-tier services
Get-AzServiceTierAvailability -Region eastus
# Filter to specific services
Get-AzServiceTierAvailability -Region eastus -ServiceFilter Redis,EventHubs,ServiceBus
# Available services: Redis, EventHubs, ServiceBus, AISearch, APIM,
# ACR, KeyVault, FrontDoor, LogAnalytics, AppConfig,
# IoTHub, Grafana, StaticWebApps, SignalR, NotificationHubs
Workflow 8: Region Health Matrix
When scanning multiple services via Get-AzPaaSAvailability, the orchestrator
renders a unified cross-service matrix automatically.
# Scan all services, see the matrix
Get-AzPaaSAvailability -Region eastus,westus2,centralus
You can also call the matrix renderer directly on a saved result:
$result = Get-AzPaaSAvailability -Region eastus,westus2 -Quiet
Show-AzPaaSRegionMatrix -ScanResult $result
Workflow 9: Pipeline Capture & Export
Import-Module ./AzPaaSAvailability -Force
# Capture results (suppress display)
$results = Get-AzPaaSAvailability -Region eastus,westus2 -Quiet
# Filter in pipeline
$results.SqlSkus | Where-Object { $_.ZoneRedundant -and $_.Edition -eq 'Hyperscale' }
$results.PostgreSqlSkus | Where-Object { $_.ZoneSupport }
# Export to XLSX (currently exports SQL + Cosmos DB sections)
$results | Export-AzPaaSAvailabilityReport -Path C:\Temp
# Export to CSV (currently exports SQL + Cosmos DB sections)
$results | Export-AzPaaSAvailabilityReport -Path C:\Temp -Format CSV
# JSON output via wrapper script
.\Get-AzPaaSAvailability.ps1 -Region eastus -NoPrompt -JsonOutput
Workflow 10: Wrapper Script (Interactive + Automation)
The wrapper script (.\Get-AzPaaSAvailability.ps1) adds interactive region
selection and extra flags not on the module function:
# Interactive — prompts for region preset
.\Get-AzPaaSAvailability.ps1
# Automated — skip prompts
.\Get-AzPaaSAvailability.ps1 -RegionPreset USMajor -NoPrompt
# SQL-focused scan with auto-export
.\Get-AzPaaSAvailability.ps1 -Service SqlDatabase -Edition Hyperscale -AutoExport
# JSON output for piping to other tools
.\Get-AzPaaSAvailability.ps1 -Region eastus -NoPrompt -JsonOutput
Parameter Quick Reference
Get-AzPaaSAvailability (Orchestrator)
| Parameter |
Type |
Purpose |
-Region |
String[] |
Azure region codes (e.g., "eastus","westus2") |
-RegionPreset |
String |
Predefined set: USEastWest, USMajor, Europe, AsiaPacific, Global, USGov, China, ASR-EastWest, ASR-CentralUS |
-Service |
String |
Filter: SqlDatabase, CosmosDB, PostgreSQL, MySQL, AppService, ContainerApps, AKS, Functions, Storage, All |
-Edition |
String[] |
SQL edition filter: GeneralPurpose, BusinessCritical, Hyperscale |
-ComputeModel |
String |
SQL compute: Provisioned, Serverless |
-SqlResourceType |
String |
SqlDatabase or ManagedInstance |
-IncludeDisabled |
Switch |
Show Visible/Disabled SKUs |
-FetchPricing |
Switch |
Include retail pricing |
-Environment |
String |
AzureCloud, AzureUSGovernment, AzureChinaCloud, AzureGermanCloud |
-MaxRetries |
Int |
Retry attempts (default 3) |
-Quiet |
Switch |
Suppress display, objects only — use from Copilot |
Wrapper Script Extra Parameters
| Parameter |
Type |
Purpose |
-NoPrompt |
Switch |
Skip interactive menus — use from Copilot |
-JsonOutput |
Switch |
Emit JSON to stdout |
-AutoExport |
Switch |
Export without prompting |
-ExportPath |
String |
Custom export directory |
-OutputFormat |
String |
Auto, CSV, or XLSX |
Region Presets
| Preset |
Regions |
| USEastWest |
eastus, eastus2, westus, westus2 |
| USCentral |
centralus, northcentralus, southcentralus, westcentralus |
| USMajor |
eastus, eastus2, centralus, westus, westus2 |
| Europe |
westeurope, northeurope, uksouth, francecentral, germanywestcentral |
| AsiaPacific |
eastasia, southeastasia, japaneast, australiaeast, koreacentral |
| Global |
eastus, westeurope, southeastasia, australiaeast, brazilsouth |
| USGov |
usgovvirginia, usgovtexas, usgovarizona |
| China |
chinaeast, chinanorth, chinaeast2, chinanorth2 |
| ASR-EastWest |
eastus, westus2 |
| ASR-CentralUS |
centralus, eastus2 |
Services Covered (25 Total)
Tier 1 — Dedicated Capabilities / Regional Capacity API (10 services)
| Service |
Cmdlet |
Data |
| SQL Database + MI |
Get-AzSqlAvailability |
SKUs, vCore quota, zone redundancy, AHUB, status |
| Cosmos DB |
Get-AzCosmosDBAvailability |
Subscription region access, AZ support, residency |
| PostgreSQL Flex |
Get-AzPostgreSqlAvailability |
Compute tiers, vCores, IOPS, memory, zones, HA |
| MySQL Flex |
Get-AzMySqlAvailability |
SKUs per version, storage, geo-backup |
| App Service |
Get-AzAppServiceAvailability |
Tier availability, zone/Linux/Functions/container |
| Container Apps |
Get-AzContainerAppsAvailability |
Workload profiles (Consumption to GPU) |
| AKS |
Get-AzAksAvailability |
Kubernetes versions, preview/GA, upgrade paths |
| Functions |
Get-AzFunctionsAvailability |
Runtime stacks, versions, deprecation, platform |
| Storage |
Get-AzStorageAvailability |
SKUs per region with tier, kind, zones, restrictions |
| Azure NetApp Files |
Get-AzNetAppFilesAvailability |
Regional access, logical zones, quota limits, usage |
Tier 2-4 — Pricing API Validation (15 services via Get-AzServiceTierAvailability)
Redis, Event Hubs, Service Bus, AI Search, APIM, ACR, Key Vault, Front Door,
Log Analytics, App Configuration, IoT Hub, Managed Grafana, Static Web Apps,
SignalR, Notification Hubs.
Result Object Schema
Get-AzPaaSAvailability returns a [PSCustomObject] with these properties:
| Property |
Type |
Content |
SqlSkus |
Array |
SQL Database/MI SKU details per region |
CosmosDbLocations |
Array |
Cosmos DB region access details |
PostgreSqlSkus |
Array |
PostgreSQL Flexible Server SKUs |
MySqlSkus |
Array |
MySQL Flexible Server SKUs |
AppServiceSkus |
Array |
App Service plan SKUs per region |
ContainerApps |
Array |
Container Apps workload profiles |
AksVersions |
Array |
AKS Kubernetes versions per region |
FunctionStacks |
Array |
Functions runtime stacks and versions |
StorageSkus |
Array |
Storage SKUs per region |
NetAppFiles |
Array |
Azure NetApp Files region access, zones, and quota headroom |
ScanMetadata |
Object |
Version, regions, timing, service count |
Interpreting Results
When presenting results to the user:
- SQL scans: Highlight which editions and vCore counts are Available vs Visible/Disabled, note zone redundancy and AHUB support
- Cosmos DB: Flag any BLOCKED regions — the user's subscription may need to be explicitly enabled
- Region Matrix: Use the matrix to quickly identify service gaps across regions
- Static-tier services: Pricing validation confirms the service tier exists in the region
- Always mention: zone redundancy support, quota availability, and any restrictions
Troubleshooting
| Issue |
Solution |
| Module not found |
git clone https://github.com/ZacharyLuz/Get-AzPaaSAvailability.git |
| PowerShell 5.1 error |
Use pwsh — module requires PowerShell 7.0+ |
| No Azure context |
Run Connect-AzAccount first |
| Cosmos DB shows BLOCKED |
Subscription not enabled for that region — file support ticket |
| Export fails |
Install ImportExcel module: Install-Module ImportExcel -Scope CurrentUser |
SQL quota shows ? |
Quota API didn't return data for that region |
Source: ZacharyLuz/Get-AzPaaSAvailability — distributed by TomeVault.
1---2name: zacharyluz-get-azpaasavailability-azure-paas-availability3description: Azure PaaS Availability — Live Service Scanner4---56# Azure PaaS Availability — Live Service Scanner78> **AUTHORITATIVE GUIDANCE** — This skill teaches you when and how to invoke9> the `Get-AzPaaSAvailability` module via terminal for real-time Azure PaaS10> service scanning. The module is the execution engine; this skill is the11> routing layer.1213## When to Use This Skill1415Invoke this skill when the user wants to:16- Check **real-time** PaaS service availability across Azure regions17- Find which regions support specific SQL Database editions, vCore counts, or compute models18- Check **Cosmos DB** subscription-level region access (blocked, AZ-only, residency)19- See **PostgreSQL Flexible Server** tiers, IOPS, memory, and zone support per region20- See **MySQL Flexible Server** SKUs per server version (5.7/8.0/8.4/9.3)21- Find which regions have specific **App Service** plan tiers (with zone/Linux/container flags)22- Check **Container Apps** workload profiles (Consumption, D4-D32, E4-E32, GPU)23- See **AKS** Kubernetes version availability and upgrade paths per region24- Check **Functions** runtime stacks, versions, and deprecation dates25- See **Storage** SKUs per region with tier, kind, zone redundancy, and restrictions26- Check **Azure NetApp Files** regional access, logical zones, storage-to-network proximity, and quota headroom27- Validate **static-tier services** (Redis, Event Hubs, Service Bus, AI Search, APIM, etc.)28- Compare PaaS service coverage across multiple regions in a **Region Health Matrix**29- Export availability data to CSV/XLSX for reporting or planning3031### When NOT to Use This Skill3233| Scenario | Use Instead |34|----------|-------------|35| VM SKU capacity, quota, or pricing | `azure-vm-availability` (Get-AzVMAvailability) |36| AI model availability (OpenAI, Anthropic, etc.) | `Get-AzAIModelAvailability` |37| Deploy PaaS resources or infrastructure | `azure-prepare` → `azure-validate` → `azure-deploy` |38| General Azure service recommendation (no login) | `azure-compute` or Azure docs |39| Azure quota management via CLI | `azure-quotas` |4041---4243## Prerequisites4445Before running, verify these requirements. **Stop and help the user fix any missing prerequisite.**4647### 1. Module Must Be On The Machine4849```powershell50# Check common locations51$paths = @(52 "$env:USERPROFILE\Get-AzPaaSAvailability\AzPaaSAvailability",53 "C:\Github\Personal\Get-AzPaaSAvailability\AzPaaSAvailability"54)55$found = $paths | Where-Object { Test-Path $_ } | Select-Object -First 156if ($found) { Write-Host "Found: $found" } else { Write-Host "NOT FOUND" }57```5859**If not found**, tell the user:60```powershell61git clone https://github.com/ZacharyLuz/Get-AzPaaSAvailability.git62cd Get-AzPaaSAvailability63```6465### 2. PowerShell 7+ Required6667```powershell68$PSVersionTable.PSVersion # Must be 7.0+69```7071### 3. Azure Module & Login7273```powershell74Get-Module Az.Accounts -ListAvailable # Must be installed75Get-AzContext # Must have active login76```7778If not logged in: `Connect-AzAccount`7980---8182## Decision Tree8384```85User request86 │87 ├─ "What VM should I use for X workload?"88 │ └─ Use azure-vm-availability or azure-compute (VM, not PaaS)89 │90 ├─ "Which regions have Hyperscale SQL?"91 │ └─ THIS SKILL → Get-AzSqlAvailability -Edition Hyperscale92 │93 ├─ "Is Cosmos DB available in westeurope for my subscription?"94 │ └─ THIS SKILL → Get-AzCosmosDBAvailability95 │96 ├─ "What PostgreSQL SKUs are available in eastus?"97 │ └─ THIS SKILL → Get-AzPostgreSqlAvailability98 │99 ├─ "What AKS versions can I use in westus2?"100 │ └─ THIS SKILL → Get-AzAksAvailability101 │102 ├─ "Which App Service plans support zone redundancy?"103 │ └─ THIS SKILL → Get-AzAppServiceAvailability104 │105 ├─ "Is Redis Cache Enterprise available in my region?"106 │ └─ THIS SKILL → Get-AzServiceTierAvailability -ServiceFilter Redis107 │108 ├─ "Compare PaaS service coverage across US regions"109 │ └─ THIS SKILL → Get-AzPaaSAvailability -RegionPreset USMajor110 │111 └─ "Export PaaS availability to Excel"112 └─ THIS SKILL → Get-AzPaaSAvailability ... -Quiet | Export-AzPaaSAvailabilityReport113```114115---116117## Core Workflows118119### Workflow 1: PaaS Scan (9 First-Class Services)120121**Scenario:** Compare PaaS service availability across regions. The orchestrator scans 9 API-backed services. For the 15 static-tier services, call `Get-AzServiceTierAvailability` separately (see Workflow 7).122123```powershell124# Wrapper script — interactive region selection125.\Get-AzPaaSAvailability.ps1126127# Wrapper script — automated, no prompts128.\Get-AzPaaSAvailability.ps1 -RegionPreset USMajor -NoPrompt129130# Module — direct call (always use from Copilot)131Import-Module ./AzPaaSAvailability -Force132Get-AzPaaSAvailability -Region eastus,westus2,centralus133```134135**Always use the module approach from Copilot** — it gives structured output.136137### Workflow 2: SQL Database / Managed Instance138139```powershell140Import-Module ./AzPaaSAvailability -Force141142# All SQL Database SKUs in a region143Get-AzSqlAvailability -Region eastus144145# Hyperscale only146Get-AzSqlAvailability -Region eastus,westus2 -Edition Hyperscale147148# Serverless compute model149Get-AzSqlAvailability -Region eastus -ComputeModel Serverless150151# SQL Managed Instance152Get-AzSqlAvailability -Region eastus -SqlResourceType ManagedInstance153154# Include Visible/Disabled SKUs155Get-AzSqlAvailability -Region eastus -IncludeDisabled156```157158### Workflow 3: Cosmos DB Subscription Access159160```powershell161Import-Module ./AzPaaSAvailability -Force162163# Check which regions your subscription can access164Get-AzCosmosDBAvailability -Region eastus,westeurope,southeastasia165```166167Output shows: access flags, AZ support, residency restrictions per region.168169### Workflow 4: PostgreSQL / MySQL Flexible Server170171```powershell172Import-Module ./AzPaaSAvailability -Force173174# PostgreSQL — tiers, vCores, IOPS, memory, zone support175Get-AzPostgreSqlAvailability -Region eastus,westus2176177# MySQL — SKUs per server version (5.7/8.0/8.4/9.3)178Get-AzMySqlAvailability -Region eastus,westus2179```180181### Workflow 5: App Service / Container Apps / Functions182183```powershell184Import-Module ./AzPaaSAvailability -Force185186# App Service plans per region (zone/Linux/Functions/container flags)187Get-AzAppServiceAvailability -Region eastus,westeurope188189# Container Apps workload profiles (Consumption, D4-D32, GPU)190Get-AzContainerAppsAvailability -Region eastus,westus2191192# Functions runtime stacks and versions (global catalog, not per-region)193Get-AzFunctionsAvailability194```195196### Workflow 6: AKS / Storage197198```powershell199Import-Module ./AzPaaSAvailability -Force200201# AKS Kubernetes versions and upgrade paths202Get-AzAksAvailability -Region eastus,westus2203204# Storage SKUs (tier, kind, zones, restrictions)205Get-AzStorageAvailability -Region eastus,westus2206```207208### Workflow 7: Static-Tier Services (Redis, Event Hubs, Service Bus, etc.)209210```powershell211Import-Module ./AzPaaSAvailability -Force212213# All 15 static-tier services214Get-AzServiceTierAvailability -Region eastus215216# Filter to specific services217Get-AzServiceTierAvailability -Region eastus -ServiceFilter Redis,EventHubs,ServiceBus218219# Available services: Redis, EventHubs, ServiceBus, AISearch, APIM,220# ACR, KeyVault, FrontDoor, LogAnalytics, AppConfig,221# IoTHub, Grafana, StaticWebApps, SignalR, NotificationHubs222```223224### Workflow 8: Region Health Matrix225226When scanning multiple services via `Get-AzPaaSAvailability`, the orchestrator227renders a unified cross-service matrix automatically.228229```powershell230# Scan all services, see the matrix231Get-AzPaaSAvailability -Region eastus,westus2,centralus232```233234You can also call the matrix renderer directly on a saved result:235236```powershell237$result = Get-AzPaaSAvailability -Region eastus,westus2 -Quiet238Show-AzPaaSRegionMatrix -ScanResult $result239```240241### Workflow 9: Pipeline Capture & Export242243```powershell244Import-Module ./AzPaaSAvailability -Force245246# Capture results (suppress display)247$results = Get-AzPaaSAvailability -Region eastus,westus2 -Quiet248249# Filter in pipeline250$results.SqlSkus | Where-Object { $_.ZoneRedundant -and $_.Edition -eq 'Hyperscale' }251$results.PostgreSqlSkus | Where-Object { $_.ZoneSupport }252253# Export to XLSX (currently exports SQL + Cosmos DB sections)254$results | Export-AzPaaSAvailabilityReport -Path C:\Temp255256# Export to CSV (currently exports SQL + Cosmos DB sections)257$results | Export-AzPaaSAvailabilityReport -Path C:\Temp -Format CSV258259# JSON output via wrapper script260.\Get-AzPaaSAvailability.ps1 -Region eastus -NoPrompt -JsonOutput261```262263### Workflow 10: Wrapper Script (Interactive + Automation)264265The wrapper script (`.\Get-AzPaaSAvailability.ps1`) adds interactive region266selection and extra flags not on the module function:267268```powershell269# Interactive — prompts for region preset270.\Get-AzPaaSAvailability.ps1271272# Automated — skip prompts273.\Get-AzPaaSAvailability.ps1 -RegionPreset USMajor -NoPrompt274275# SQL-focused scan with auto-export276.\Get-AzPaaSAvailability.ps1 -Service SqlDatabase -Edition Hyperscale -AutoExport277278# JSON output for piping to other tools279.\Get-AzPaaSAvailability.ps1 -Region eastus -NoPrompt -JsonOutput280```281282---283284## Parameter Quick Reference285286### Get-AzPaaSAvailability (Orchestrator)287288| Parameter | Type | Purpose |289|-----------|------|---------|290| `-Region` | String[] | Azure region codes (e.g., "eastus","westus2") |291| `-RegionPreset` | String | Predefined set: USEastWest, USMajor, Europe, AsiaPacific, Global, USGov, China, ASR-EastWest, ASR-CentralUS |292| `-Service` | String | Filter: SqlDatabase, CosmosDB, PostgreSQL, MySQL, AppService, ContainerApps, AKS, Functions, Storage, All |293| `-Edition` | String[] | SQL edition filter: GeneralPurpose, BusinessCritical, Hyperscale |294| `-ComputeModel` | String | SQL compute: Provisioned, Serverless |295| `-SqlResourceType` | String | SqlDatabase or ManagedInstance |296| `-IncludeDisabled` | Switch | Show Visible/Disabled SKUs |297| `-FetchPricing` | Switch | Include retail pricing |298| `-Environment` | String | AzureCloud, AzureUSGovernment, AzureChinaCloud, AzureGermanCloud |299| `-MaxRetries` | Int | Retry attempts (default 3) |300| `-Quiet` | Switch | Suppress display, objects only — **use from Copilot** |301302### Wrapper Script Extra Parameters303304| Parameter | Type | Purpose |305|-----------|------|---------|306| `-NoPrompt` | Switch | Skip interactive menus — **use from Copilot** |307| `-JsonOutput` | Switch | Emit JSON to stdout |308| `-AutoExport` | Switch | Export without prompting |309| `-ExportPath` | String | Custom export directory |310| `-OutputFormat` | String | Auto, CSV, or XLSX |311312---313314## Region Presets315316| Preset | Regions |317|--------|---------|318| USEastWest | eastus, eastus2, westus, westus2 |319| USCentral | centralus, northcentralus, southcentralus, westcentralus |320| USMajor | eastus, eastus2, centralus, westus, westus2 |321| Europe | westeurope, northeurope, uksouth, francecentral, germanywestcentral |322| AsiaPacific | eastasia, southeastasia, japaneast, australiaeast, koreacentral |323| Global | eastus, westeurope, southeastasia, australiaeast, brazilsouth |324| USGov | usgovvirginia, usgovtexas, usgovarizona |325| China | chinaeast, chinanorth, chinaeast2, chinanorth2 |326| ASR-EastWest | eastus, westus2 |327| ASR-CentralUS | centralus, eastus2 |328329---330331## Services Covered (25 Total)332333### Tier 1 — Dedicated Capabilities / Regional Capacity API (10 services)334335| Service | Cmdlet | Data |336|---------|--------|------|337| SQL Database + MI | `Get-AzSqlAvailability` | SKUs, vCore quota, zone redundancy, AHUB, status |338| Cosmos DB | `Get-AzCosmosDBAvailability` | Subscription region access, AZ support, residency |339| PostgreSQL Flex | `Get-AzPostgreSqlAvailability` | Compute tiers, vCores, IOPS, memory, zones, HA |340| MySQL Flex | `Get-AzMySqlAvailability` | SKUs per version, storage, geo-backup |341| App Service | `Get-AzAppServiceAvailability` | Tier availability, zone/Linux/Functions/container |342| Container Apps | `Get-AzContainerAppsAvailability` | Workload profiles (Consumption to GPU) |343| AKS | `Get-AzAksAvailability` | Kubernetes versions, preview/GA, upgrade paths |344| Functions | `Get-AzFunctionsAvailability` | Runtime stacks, versions, deprecation, platform |345| Storage | `Get-AzStorageAvailability` | SKUs per region with tier, kind, zones, restrictions |346| Azure NetApp Files | `Get-AzNetAppFilesAvailability` | Regional access, logical zones, quota limits, usage |347348### Tier 2-4 — Pricing API Validation (15 services via `Get-AzServiceTierAvailability`)349350Redis, Event Hubs, Service Bus, AI Search, APIM, ACR, Key Vault, Front Door,351Log Analytics, App Configuration, IoT Hub, Managed Grafana, Static Web Apps,352SignalR, Notification Hubs.353354---355356## Result Object Schema357358`Get-AzPaaSAvailability` returns a `[PSCustomObject]` with these properties:359360| Property | Type | Content |361|----------|------|---------|362| `SqlSkus` | Array | SQL Database/MI SKU details per region |363| `CosmosDbLocations` | Array | Cosmos DB region access details |364| `PostgreSqlSkus` | Array | PostgreSQL Flexible Server SKUs |365| `MySqlSkus` | Array | MySQL Flexible Server SKUs |366| `AppServiceSkus` | Array | App Service plan SKUs per region |367| `ContainerApps` | Array | Container Apps workload profiles |368| `AksVersions` | Array | AKS Kubernetes versions per region |369| `FunctionStacks` | Array | Functions runtime stacks and versions |370| `StorageSkus` | Array | Storage SKUs per region |371| `NetAppFiles` | Array | Azure NetApp Files region access, zones, and quota headroom |372| `ScanMetadata` | Object | Version, regions, timing, service count |373374---375376## Interpreting Results377378When presenting results to the user:3793801. **SQL scans**: Highlight which editions and vCore counts are Available vs Visible/Disabled, note zone redundancy and AHUB support3812. **Cosmos DB**: Flag any BLOCKED regions — the user's subscription may need to be explicitly enabled3823. **Region Matrix**: Use the matrix to quickly identify service gaps across regions3834. **Static-tier services**: Pricing validation confirms the service tier exists in the region3845. **Always mention**: zone redundancy support, quota availability, and any restrictions385386---387388## Troubleshooting389390| Issue | Solution |391|-------|----------|392| Module not found | `git clone https://github.com/ZacharyLuz/Get-AzPaaSAvailability.git` |393| PowerShell 5.1 error | Use `pwsh` — module requires PowerShell 7.0+ |394| No Azure context | Run `Connect-AzAccount` first |395| Cosmos DB shows BLOCKED | Subscription not enabled for that region — file support ticket |396| Export fails | Install `ImportExcel` module: `Install-Module ImportExcel -Scope CurrentUser` |397| SQL quota shows `?` | Quota API didn't return data for that region |398399---400> Source: [ZacharyLuz/Get-AzPaaSAvailability](https://github.com/ZacharyLuz/Get-AzPaaSAvailability) — distributed by [TomeVault](https://tomevault.io).401<!-- tomevault:4.0:skill_md:2026-06-16 -->