# Azure Support Ticket

> |

- **Type:** Skill
- **Install:** `agentstack add skill-mozilla-platform-ops-agent-skills-azure-support-ticket`
- **Verified:** Yes — security-reviewed for prompt injection and unsafe behavior
- **Seller:** [mozilla-platform-ops](https://agentstack.voostack.com/s/mozilla-platform-ops)
- **Installs:** 0
- **Category:** [Cloud & Infrastructure](https://agentstack.voostack.com/c/cloud-infrastructure)
- **Latest version:** 0.1.0
- **License:** MPL-2.0
- **Upstream author:** [mozilla-platform-ops](https://github.com/mozilla-platform-ops)
- **Source:** https://github.com/mozilla-platform-ops/agent-skills/tree/main/skills/azure-support-ticket
- **Website:** https://agentskills.io/home

## Install

```sh
agentstack add skill-mozilla-platform-ops-agent-skills-azure-support-ticket
```

Requires the [AgentStack CLI](https://agentstack.voostack.com/docs/cli). Works with Claude Code, Cursor, and any MCP-compatible agent.

## About

# azure-support-ticket

File and manage Azure support tickets via the CLI without rediscovering
the service IDs, payload formats, and description quirks every time.

Use this skill for filing requests and updating ticket state. To read
current quota numbers, use `az vm list-usage` directly.

## Subcommands

```bash
uv run scripts/file_ticket.py quota   ...   # file a quota-increase ticket
uv run scripts/file_ticket.py bump    ...   # change severity on an existing ticket
uv run scripts/file_ticket.py list    ...   # list recent tickets
uv run scripts/file_ticket.py show    ...   # show one ticket
```

All subcommands accept `--subscription`; default is Trusted FXCI
(`a30e97ab-734a-4f3b-a0e4-c51c0bff0701`). Other FXCI subscriptions and
the full service-ID table are in
[references/quota-recipes.md](references/quota-recipes.md).

## Examples

File a Sev B LowPriorityCores bump in southcentralus:

```bash
uv run scripts/file_ticket.py quota \
  --region southcentralus \
  --quota-type LowPriorityCores \
  --new-limit 4000 \
  --severity moderate \
  --reason "eastus2 has 20%+ Spot eviction on Standard_D32ads_v5 ..."
```

Use `--dry-run` to inspect the exact `az` command before filing.

Bump an existing ticket to Sev A (accepts the resource name or the
display supportTicketId):

```bash
uv run scripts/file_ticket.py bump \
  --ticket-name 2605180040009652 \
  --severity critical
```

Per-SKU-family Spot quota (requires `--vm-family`):

```bash
uv run scripts/file_ticket.py quota \
  --region westus2 --quota-type VMFamilyLowPriority \
  --vm-family standardDADSv5Family --new-limit 200 \
  --severity moderate --reason "..."
```

## Severities

`minimal` (Sev C) works on every plan. `moderate` (Sev B) needs Standard
support or higher. `critical` (Sev A) needs ProDirect or higher. The
script does not validate the plan before submitting; if the plan
disallows the severity, the API returns a clear error.

## Troubleshooting

`JsonDeserializationError: Description contains invalid characters` -
the API rejects high-codepoint characters silently. The script
normalizes em-dashes, en-dashes, curly quotes, ellipsis, and
non-breaking spaces to ASCII, and drops anything else with a notice.
If you see this, your `--reason` body contains a codepoint the
sanitizer missed; re-encode and retry.

`ResourceNotFound` on `bump` - the previous ticket name doesn't exist
under the given subscription. Likely you passed the numeric display
`supportTicketId` from the create response. The script's `bump`
subcommand resolves the numeric form via `list` automatically, but if
the ticket was filed under a different subscription you must pass
`--subscription` explicitly.

`The selected subscription has an Azure support plan that doesn't
allow this severity` - downgrade with `--severity minimal`, or upgrade
the plan. See the severity table above.

`InvalidParameterValue` on `quotaChangeRequests` - the payload format
is per-quota-type. Re-check the recipe in
[references/quota-recipes.md](references/quota-recipes.md); the
common mistake is omitting `VMFamily` (use the literal `lowPriority`
or `cores` for the regional totals, real family names like
`standardDADSv5Family` for per-family).

## See also

[references/quota-recipes.md](references/quota-recipes.md) - service
IDs, problem-classification GUIDs, payload formats per quota type, VM
family names, FXCI subscription map, and the description sanitization
rules.

## Source & license

This open-source skill is cataloged on AgentStack and links to its original source — we do not rehost the code.

- **Author:** [mozilla-platform-ops](https://github.com/mozilla-platform-ops)
- **Source:** [mozilla-platform-ops/agent-skills](https://github.com/mozilla-platform-ops/agent-skills)
- **License:** MPL-2.0
- **Homepage:** https://agentskills.io/home

Install and usage instructions live in the source repository linked above.

## Pricing

- **Free** — Free

## Security capabilities

Automated source analysis of v0.1.0 — what this tool can access:

- **Network access:** no
- **Filesystem access:** no
- **Shell / process execution:** no
- **Environment & secrets:** no
- **Dynamic code execution:** no

*"Yes" means the capability is present in the source — more access means more to trust, not that it is unsafe.*


## Versions

- **0.1.0** — security scan: passed — Imported from the upstream source.

## Links

- Listing page: https://agentstack.voostack.com/l/skill-mozilla-platform-ops-agent-skills-azure-support-ticket
- Seller: https://agentstack.voostack.com/s/mozilla-platform-ops
- Browse the marketplace: https://agentstack.voostack.com/browse

---
Listed on AgentStack — the marketplace for AI agent skills and MCP servers. Every listing is security-reviewed. Creators keep 70%.
