Loading source
Pulling the file list, source metadata, and syntax-aware rendering for this listing.
Source from repo
Select, configure, and scale Azure compute resources—VMs, App Service, AKS, and Container Apps
Files
Skill
Size
Entrypoint
Format
Open file
Syntax-highlighted preview of this file as included in the skill package.
workflows/vm-creator/references/output-adapters/index.md
1# Output Adapters23The VM Creator's final step emits the user's choice of one (or more) output formats from the same approved Plan Card. The user can re-emit a different format at any time without restarting the conversation.45## Choosing the format67| Format | When to offer | File |8|---|---|---|9| **az CLI bash** | Quick one-off, learning, ad-hoc creation, CI scripts | [az-cli.md](az-cli.md) |10| **Bicep** | Production IaC, repeatable, what-if preview, org standardized on Bicep | [bicep.md](bicep.md) |11| **Terraform** | Multi-cloud, existing TF state, org standardized on Terraform | [terraform.md](terraform.md) |12| **Apply via Azure MCP** | "Just do it" — user is in an MCP-connected host and trusts the Plan Card | [mcp-apply.md](mcp-apply.md) |1314Always show the user all four as a numbered choice at Step 6. Default-suggest based on signals:15- "I want a script" → az CLI16- "I want infra-as-code" → Bicep (default) / Terraform (if user mentioned TF)17- "Just create it" / "deploy it now" → Apply via Azure MCP1819## Plan Card → parameter mapping2021Every adapter draws from these Plan Card fields. Capture them once; transform on emit.2223| Plan Card field | az CLI | Bicep | Terraform | MCP parameter |24|---|---|---|---|---|25| name | `--name` | `vmName` | `vm_name` | `vm-name` |26| resourceGroup | `--resource-group` | (scope) | `resource_group_name` | `resource-group` |27| subscription | `--subscription` | (scope) | `subscription_id` | `subscription` |28| location | `--location` | `location` | `location` | `location` |29| size | `--size` | `vmSize` | `size` | `vm-size` |30| image | `--image` | `imageReference` | `source_image_reference` | `image` |31| adminUsername | `--admin-username` | `adminUsername` | `admin_username` | `admin-username` |32| sshKey | `--ssh-key-values` | `adminPublicKey` | `admin_ssh_key.public_key` | `ssh-public-key` |33| adminPassword | `--admin-password` | `adminPassword` (secure) | `admin_password` (sensitive) | `admin-password` |34| vnetName | `--vnet-name` | `vnetName` | `azurerm_virtual_network.name` | `virtual-network` |35| subnetName | `--subnet` | `subnetName` | `azurerm_subnet.name` | `subnet` |36| publicIp | `--public-ip-address` | `publicIpName` | `azurerm_public_ip` | `public-ip-address` |37| nsgName | `--nsg` | `nsgName` | `azurerm_network_security_group.name` | `network-security-group` |38| zone | `--zone` | `zones: [N]` | `zone` | `zone` |39| osDiskType | `--storage-sku` | `osDisk.managedDisk.storageAccountType` | `os_disk.storage_account_type` | `os-disk-type` |40| osDiskSizeGb | `--os-disk-size-gb` | `osDisk.diskSizeGB` | `os_disk.disk_size_gb` | `os-disk-size-gb` |41| tags | `--tags` | `tags` | `tags` | (none — emit separately) |4243For VMSS, also map `instanceCount` and `upgradePolicy` (see each adapter file).4445## Re-emitting after a format switch4647After the user picks one format, save the Plan Card. If they later say "actually give me the bicep too" or "show me terraform", regenerate from the same Plan Card — do not re-ask any questions. The Plan Card is the canonical state.48