Skip to content

beyond-nesting-levels

Full name
@azure-tools/typespec-azure-resource-manager/beyond-nesting-levels

Tracked Resources must use 3 or fewer levels of nesting. Deeply nested resources make the API harder to use and are discouraged by ARM guidelines.

@armProviderNamespace
namespace MyService;
// 4 levels of nesting: A > B > C > D โ€” too deep
model A is TrackedResource<{}> {
...ResourceNameParameter<A>;
}
@parentResource(A)
model B is TrackedResource<{}> {
...ResourceNameParameter<B>;
}
@parentResource(B)
model C is TrackedResource<{}> {
...ResourceNameParameter<C>;
}
@parentResource(C)
model D is TrackedResource<{}> {
...ResourceNameParameter<D>;
}
@armProviderNamespace
namespace MyService;
// 3 levels of nesting: A > B > C
model A is TrackedResource<{}> {
...ResourceNameParameter<A>;
}
@parentResource(A)
model B is TrackedResource<{}> {
...ResourceNameParameter<B>;
}
@parentResource(B)
model C is TrackedResource<{}> {
...ResourceNameParameter<C>;
}