feat: constrain custom conversation handler event version #2958
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.
Description of changes
Change how
@conversation
directive accepts custom conversation handler.From:
To:
While still accepting older version. Older version will be removed upon GA.
Motivation
This is a companion PR to aws-amplify/amplify-backend#2089 .
And a pre-requisite for https:/aws-amplify/amplify-api-next/pull/369 .
These PRs setup a versioning for the event protocol between conversation route resolvers and lambda handler.
The protocol versioning works as follows:
<major>.<minor>
. Patch is meaningless for protocol versioning.<major>
digit. (mismatches within minor version should result in disabled functionality, not runtime errors).This prepares us for future handling of
2.x
and higher versions of event. Where we can:(This decision will be made later, when break actually happens, in this PR we establish necessary primitives to handle it in the future, and assert correctness of current state where we only have single major version).
CDK / CloudFormation Parameters Changed
NONE.
Description of how you validated changes
Added unit tests.
Checklist
yarn test
passesBy submitting this pull request, I confirm that my contribution is made under the terms of the Apache 2.0 license.