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.
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 intocrucible.aws.serverless.<resource>
namespaces with some additional sub-directories when necessary. There is a newcrucible.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.