patch-envelope
@azure-tools/typespec-azure-resource-manager/patch-envelopePatch envelope properties should match the resource properties. If a resource defines envelope properties such as identity, managedBy, plan, sku, or tags, these properties must also be present in the PATCH request body so they can be updated.
❌ Incorrect
Section titled “❌ Incorrect”model FooResource is TrackedResource<FooProperties> { ...ResourceNameParameter<Foo>; ...ManagedServiceIdentityProperty;}
model PatchFoo { properties?: PatchFooProperties;}
model PatchFooProperties { name?: string;}
@armResourceOperationsinterface FooResources { // update model is missing the 'identity' envelope property update is ArmCustomPatchAsync<FooResource, PatchFoo>;}✅ Correct
Section titled “✅ Correct”model FooResource is TrackedResource<FooProperties> { ...ResourceNameParameter<Foo>; ...ManagedServiceIdentityProperty;}
model PatchFoo { ...ManagedServiceIdentityProperty; properties?: PatchFooProperties;}
model PatchFooProperties { name?: string;}
@armResourceOperationsinterface FooResources { update is ArmCustomPatchAsync<FooResource, PatchFoo>;}Reviewer advice
Section titled “Reviewer advice”Impacts the API: the patch operation is missing updatable envelope properties. Ask the author to include patchable versions of the envelope properties. Suppress only when there is a clear reason, because patchable envelope properties should generally be standard.