Use schema.TypeSet
for application sync_policy
#228
Merged
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.
This PR changes the type of
application.spec.sync_policy.automated
andapplication.spec.sync_policy.retry.backoff
fromschema.TypeMap
toschema.TypeSet
.Motivation:
When using
schema.TypeMap
it is not possible to define the set of keys required as per the provider SDK docs:This leads to some subtle issues. For example, if users do not define all keys this will result in a perpetual diff since all keys are stored in state when flattening the resource. This is illustrated in the fix to the tests containing in 913b530.
Additionally, the use of maps prevents us from generating docs for the provider since the keys are not defined.
Impact:
Obviously this is a breaking change to existing consumers of the provider. Although, as illustrated in the documentation updates the upgrade path is a simple one.
would change to