Prototype new auto-generation via the AWS resource specification file
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.
make spec2
python scripts/gen.py --name batch CloudFormationResourceSpecification.json > troposphere/batch.py
python scripts/gen.py --name s3 CloudFormationResourceSpecification.json > troposphere/s3.py
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