Prototype new auto-generation via the AWS resource specification file #1300
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.
DO NOT MERGE THIS CHANGE - this is a WIP
As mentioned in #1295, I'm prototyping ways to better auto-generate troposphere files from the AWS resource specification. This should then allow for more rapid turnaround of new change from the CloudFormation team.
This PR is a quick first pass at improving troposphere python files using the AWS resource specification file. The base file for each service say, foo.py, will be auto-generated. There is an override file, foo.yaml, to include validation and other changes into the base file. The validation routines are now moved into foo_validators.py as either class mixins or property validation functions.
The main change is scripts/gen.py to improve the auto-generated files. The two files that are auto-generated are troposphere/batch.py and troposphere/s3.py with corresponding yaml and validator files. Note: some of the S3 changes are breaking changes due to class naming differences.
I'd like to get feedback on the general direction of this technique (note: I know the code needs cleanup and handle some edge cases). @phobologic @axelpavageau @cmmeyer