sdk/go: Don't drop Dependencies in ResourceOptions snapshot for MLCs #12683
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
We recently added a new API, NewResourceOptions to build a preview
of a set of resource options.
This currently drops the dependencies of an MLC from the snapshot.
The reason for this is that it used a special type "urnSet"
to represent dependencies for MLCs received over the wire.
This decision was made at the time because the original Resource objects
were not available for these dependencies.
Turns out that that limitation isn't a blocker:
we can use newDependencyResource to create dummy Resource objects
that hold nothing but a URN.
This allows NewResourceOptions to work on options even inside an MLC.
Note that this currently only works for some of the options:
those that are propagated from
construct
into the Go SDK options.Others will be added as part of #12154.
Testing:
The accompanying test failed for Dependencies without this change.