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.
Currently internally tagged enums are converted to an any_of of all possible variants and each of these variants gets a field for the tag with one possible value. For validation purposes, this might be fine. I was, however, using it in combination with https://github.com/redhat-developer/yaml-language-server and the results where not satisfactory.
Due to the fact that the tag field is added to each variant, the autocomplete could not show me all possible (enum) values for the tag field. In this PR, I changed the serialization of tagged enum to an object with a field for the tag and a subschema with an all_of. This all_of contains each variants, but only conditionally, where the condition is that the tag field equals the value for the specific enum.
I did also see #91 but that solution is not JsonSchema compatible.
I submit this as a draft because of three reasons: