1-acs-resource-scan

$npx mdskill add microsoft/acs-resource-explorer/1-acs-resource-scan

Use this skill to discover all ACS Communication Services resources across selected subscription(s).

SKILL.md

.github/skills/1-acs-resource-scanView on GitHub ↗
---
name: 1-acs-resource-scan
description: Scan Azure subscriptions for Azure Communication Services (ACS) resources (Microsoft.Communication/CommunicationServices). ACS-specific version of azure/3-azure-resource-scan with resource type pre-filled.
---

## When to use this skill
Use this skill to discover all ACS Communication Services resources across selected subscription(s).

Examples:
  - "Find all my ACS resources"
  - "Scan for Azure Communication Services"
  - "Discover ACS Communication Services across my subscriptions"
  - "How many ACS resources do I have?"

## Preconditions
- Azure authentication completed (use **azure/1-azure-auth-check** skill)
- Subscription(s) selected (use **azure/2-azure-subscription-select** skill)
- User has **Reader** access to target subscription(s)

## ACS Resource Type
This skill scans for: `Microsoft.Communication/CommunicationServices`

No interactive product selection is needed — this is pre-configured for ACS.

## Workflow

### 1) **Scan Each Selected Subscription**
   - For each subscription in selection (from **azure/2-azure-subscription-select**):
     - Set Azure subscription context:
       ```bash
       az account set --subscription <subscription-id>
       ```
     - Display: "📋 Scanning subscription: [Subscription Name]"

### 2) **Query ACS Resources**
   ```bash
   az resource list \
     --resource-type "Microsoft.Communication/CommunicationServices" \
     --output json
   ```

### 3) **Optional: Filter Resources**
   - Ask user: "Do you want to filter by resource name, location, or tags? (Y/N)"
   - If YES:
     - Prompt for filter criteria (name pattern, location, tags)
     - Apply using `--query` JMESPath filters or `--tag` flags

### 4) **Process Results**
   - **If NO resources found:**
     - Display: "ℹ️ No ACS resources found in [Subscription Name]"
     - Continue to next subscription

   - **If resources found:**
     - Display: "✅ Found [N] ACS resource(s) in [Subscription Name]"
     - For each resource, collect:
       - Resource Name, Resource ID, Resource Group
       - Location, Tags, Connection String endpoint

### 5) **Build ACS Resource Inventory**
   - Create structured inventory:
     ```
     {
       SubscriptionId: "...",
       SubscriptionName: "...",
       ResourceType: "Microsoft.Communication/CommunicationServices",
       ResourceName: "...",
       ResourceId: "...",
       ResourceGroup: "...",
       Location: "...",
       Tags: {...},
       Endpoint: "https://[resource].communication.azure.com"
     }
     ```

### 6) **Display Summary**
   ```
   === ACS Resource Scan Summary ===
   Resource Type: Microsoft.Communication/CommunicationServices
   Subscriptions Scanned: [N]
   Total ACS Resources Found: [M]

   By Subscription:
     - [Sub Name]: [N] ACS resource(s)
       • [Resource Name] ([Resource Group], [Location])
   ```

### 7) **Save Inventory to Session State**
   - Store ACS resource inventory for use by downstream skills:
     - `2-acs-channel-detect`
     - `3-acs-metrics-collect`
     - `4-acs-impact-analyze`
     - `5-acs-report-generate`

### 8) **Provide Next Steps**
   - If resources found:
     - Suggest: "Use **2-acs-channel-detect** for fast detection or **3-acs-metrics-collect** for complete usage analysis"
   - If no resources found:
     - Display: "✅ No ACS resources found. No migration action required."

## Output
- Total ACS resource count across all subscriptions
- Resource inventory (name, ID, subscription, resource group, location)
- Session state saved for downstream ACS skills

## Error Handling
- Permission errors: Log warning, continue to next subscription
- Subscription access errors: Display error, skip subscription

## Related Skills
- Requires **azure/1-azure-auth-check** and **azure/2-azure-subscription-select**
- Use **2-acs-channel-detect** after this (fast detection)
- Use **3-acs-metrics-collect** after this (complete detection)

More from microsoft/acs-resource-explorer

SkillDescription
0-acs-full-scanFull ACS deprecation impact assessment orchestrator. Runs the complete workflow — auth check, subscription selection, ACS resource scan, channel detection (fast or full), impact analysis, and report generation. ACS-specific, no PowerShell script required.
1-azure-auth-checkVerify Azure authentication status and display connection information (tenant, account, subscription context). Works with any Azure product or service.
2-acs-channel-detectFast, resource-based detection of ACS channels (Email, Phone Numbers). Detects Email via EmailServices/Domains child resources and Phone Numbers via purchased phone Numbers under each ACS resource. Note: SMS, Chat, Call Automation, Job Router, Advance Messaging, and Rooms require metrics — use 3-acs-metrics-collect for complete detection.
2-azure-subscription-selectInteractive subscription selection workflow. Choose specific subscription(s) or scan all accessible subscriptions. Works with any Azure product or service.
3-acs-metrics-collectComprehensive ACS usage detection via Azure Monitor metrics. All configured ACS channels are pre-mapped (Email, SMS, Chat, Call Automation, Job Router, Advance Messaging, Rooms). Configurable lookback period of 1-93 days.
3-azure-resource-scanScan Azure subscriptions for specific resource types. Interactive prompts allow scanning any Azure product (ACS, Storage, Compute, Databases, etc). Returns resource inventory across selected subscriptions.
4-acs-impact-analyzeMap detected ACS channel usage to the appropriate Retirement Guide or Breaking Change Guide. Links each impacted resource to Microsoft migration resources per channel.
4-azure-channel-detectFast, resource-based feature detection for Azure resources. Detects features/channels by examining related child resources (domains, endpoints, configurations). Works with any Azure product where features are exposed as sub-resources.
5-acs-report-generateGenerate ACS deprecation impact reports in CSV, Markdown, or JSON format. Pre-configured with ACS channel columns, migration guide links, and ACS-specific report sections.
5-azure-metrics-collectComprehensive feature/usage detection via Azure Monitor metrics. Collects usage data over configurable lookback period (1-93 days). Works with any Azure product that emits metrics to Azure Monitor.