------------------
For end users:
- This release begins to add support for AWS API Gateway. You can create a Rest
API and attach resources, models, stages, methods and deployments.
- This release begins to add support for AWS Lambda. You can define a callable
inline in your `Touchdownfile` and have Touchdown manage synchronising it to
Amazon.
- Touchdown can now configure an SNS Topic to invoke a lambda function.
- Touchdown can now configure S3 notifications to lambda (however filtering is
not yet supported).
- Lambda permissions are supported and can be managed manually, but S3 will
automatically be granted suitable access when using bucket notifications.
- Network ACL's are now updated by replacement. Rather than syncing the order
of the rules, we just create an entirely new ACL and switch subnets to use it.
This avoids hitting API limits when an ACL with a large number of rules has
to be reordered. It also makes it easier to switch back to an older ACL if
something goes wrong with the deployment (as the previous ACL is still
available).
For developers:
- There is now a `clean` hook on resources. This allows parameters to be
massaged before any validation is performed. This is currently used in
Network ACL's and allows:
* Creation of a port range from an integer:
vpc.add_network_acl(
name='test-acl',
inbound=[dict(
network='10.0.0.0/20',
protocol='tcp',
port=25,
)],
)
* Or by specifying a start and end of a range:
vpc.add_network_acl(
name='test-acl',
inbound=[dict(
network='10.0.0.0/20',
protocol='tcp',
port__start=8080,
port__end=8090,
)],
)
- There is a `can_delete` hook for destroyable AWS resources so that resources
can exclude themsevles from the destroy process.
- The diffing mechanism has been improved and can now recurse into
subresources.
- There are now read-only arguments that calculate their value or return a
serializer. This allows resources to expose an `arn` parameter consistently.
This release has been tested with `botocore==1.3.12`.