brabster / crucible

AWS CloudFormation templates built with Clojure
Eclipse Public License 1.0
72 stars 18 forks source link

Support for AWS SAM templates #159

Closed shooit closed 5 years ago

shooit commented 5 years ago

Adds support for AWS Serverless Application Model (SAM) templates with a couple of updates to existing resources where applicable.

AWS SAM https://github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md

I tried to organize the code in the same way as AWS organized the SAM resource hierarchy. That means general data-types go into the crucible.aws.serverless namespace. All actual resources go into crucible.aws.serverless.<resource> namespaces with some additional sub-directories when necessary. There is a new crucible.encoding.serverless namespace that handles global values as well as injecting the correct transformation into the converted template. crucible.core/template works just fine for SAM resources. SAM resources and CF resources can be used in the same template with no issue.

This is a pretty big PR and I am happy to help explain anything that isn't clear. @AdamFrey isn't listed as a contributor but deserves a big shout out for working on many of the specs.

brabster commented 5 years ago

Thanks guys, fantastic piece of work! Nice update to README, too.

shooit commented 5 years ago

You bet. Very happy to help out. Thanks as always for the quick review and release.