Skip to main content
← Back to list
01Issue
BugShippedExtensionsPublic
AssigneesNone

Relationships

↔ sibling #3936

#3943 AWS codegen collapses nested createOnly/readOnly paths to their last segment

Opened by stack72 · 10/25/2026· Shipped 10/25/2026

codegen/shared/schema/split.ts normalizeOnlyProperties() turns every JSON Pointer in createOnlyProperties / readOnlyProperties / writeOnlyProperties into its last path segment, so a nested pointer is treated as a top-level property name.

Example: AWS::Budgets::Budget declares createOnlyProperties /properties/Budget/BudgetName. The generated update method passes BudgetName as a create-only property. updateResource() in the generated _lib/aws.ts filters JSON-patch ops by their top-level segment, so a change to Budget.BudgetName (path /Budget/BudgetName) is not filtered and is sent to Cloud Control, which rejects it as not updatable. The other direction is also wrong: a nested pointer whose last segment equals a real top-level property name (for example /properties/Foo/Name next to a top-level Name) would wrongly skip updates to that top-level property, and the same collapse in readOnly would prune a writable top-level property from the generated arguments.

Expected: nested pointers keep their full path. Filtering compares patch op paths against full paths, and pruneProperties matches readOnly by full path only.

Found while triaging swamp-club #3936 (Budget argument missing). That issue exposes the Budget property; this bug is separate and was not introduced by it.

02Bog Flow
✓OPEN✓TRIAGED✓IN PROGRESS✓SHIPPEDLINKED+ 4 MOREPR_MERGED+ 1 MORESESSION_SUMMARIZED

Shipped

10/25/2026, 10:55:56 PM

Click a lifecycle step above to view its details.

03Sludge Pulse
stack72 linked sibling of #393610/25/2026, 9:48:39 PM
Editable. Press Enter to edit.

system commented 10/25/2026, 9:45:10 PM

Classified automatically when this issue was filed.

  • Source: Extensions

If you feel this classification is incorrect, add a ripple to tell us so.

Sign in to post a ripple.