Azure / Azure/azure-rest-api-specs
Refine FrontDoor service spec
- Dominant language
- TypeSpec
- Stars
- 3.1k
- Forks
- 5.9k
- Avg merge
- 2d 22h
- Merged PRs (30d)
- 444
Description
The FrontDoor TypeSpec at `specification/frontdoor/resource-manager/Microsoft.Network/FrontDoor` defines several local base models that duplicate shapes already provided by the standard ARM common-types / `Azure.ResourceManager.Foundations` library. As part of the .NET SDK migration to the new management-plane generator, we had to paper over this mismatch with `@@alternateType` decorators in `client.tsp` to produce the correct C# base classes:
- `Microsoft.Network.Resource` → `Azure.ResourceManager.Foundations.TrackedResource`
- `ResourcewithSettableName` → `Azure.ResourceManager.Foundations.TrackedResource`
- `BasicResource` → `Azure.ResourceManager.Foundations.ProxyResource`
- `BasicResourceWithSettableIDName` → renamed via `@@clientName` to `FrontDoorResourceData` (acts like a `TrackedResource` with a settable name)
Some or all of these local models should be replaced with the standard ARM resource base models (`TrackedResource` / `ProxyResource` / common-types `Resource`) so that:
1. The spec itself describes the resources correctly instead of relying on language-specific `@@alternateType` workarounds.
2. All SDK languages (not just .NET) benefit from the correct base types and inheritance.
3. The `client.tsp` customization surface shrinks, reducing maintenance burden.
Any local properties these models add (e.g. settable `name`, extra `id` visibility) should be reviewed — most are either already provided by the standard base types or can be expressed via the standard decorators (`@visibility`, `@@clientName`, etc.).
Context: .NET SDK migration PR for `Azure.ResourceManager.FrontDoor`.
Contributor guide
Assessment
This issue has not been assessed yet.