Add @nullFinalStateVia legacy decorator for LRO backward compatibility #3708
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.
Context:
Summary:
Adds
@nullFinalStateViadecorator to force LRO operations to havefinalStateViaset toundefined, supporting backward compatibility for language clients that require this specific behavior.Changes
lib/legacy.tsp): Added@nullFinalStateVia(target: Operation, scope?: valueof string)with scope supportgenerated-defs/,src/decorators.ts,src/tsp-index.ts): AddedNullFinalStateViaDecoratortype and$nullFinalStateViahandlersrc/decorators.ts): ExportedgetNullFinalStateVia(context, operation): booleanfor language emitterssrc/interfaces.ts): ChangedSdkLroServiceMetadata.finalStateViafrom required to optionalsrc/methods.ts): ModifiedgetServiceMethodLroMetadata()to returnundefinedforfinalStateViawhen decorator is appliedtest/decorators/null-final-state-via.test.ts): Added coverage for scoping, negation, and interaction with@markAsLroand@finalStateViaUsage
Language emitters check via
getNullFinalStateVia(context, operation)or testmetadata.finalStateVia === undefined.Original prompt
@nullFinalStateVia#3707✨ Let Copilot coding agent set things up for you — coding agent works faster and does higher quality work when set up for your repo.