beyond-nesting-levels
@azure-tools/typespec-azure-resource-manager/beyond-nesting-levelsTracked Resources must use 3 or fewer levels of nesting. Deeply nested resources make the API harder to use and are discouraged by ARM guidelines.
โ Incorrect
Section titled โโ Incorrectโ@armProviderNamespacenamespace MyService;
// 4 levels of nesting: A > B > C > D โ too deepmodel 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>;}โ Correct
Section titled โโ Correctโ@armProviderNamespacenamespace MyService;
// 3 levels of nesting: A > B > Cmodel A is TrackedResource<{}> { ...ResourceNameParameter<A>;}
@parentResource(A)model B is TrackedResource<{}> { ...ResourceNameParameter<B>;}
@parentResource(B)model C is TrackedResource<{}> { ...ResourceNameParameter<C>;}