From 096c5ce61ea8230837dcd3238ece13155f4f0965 Mon Sep 17 00:00:00 2001 From: semantic-release-bot Date: Thu, 15 Oct 2020 11:55:29 +0000 Subject: [PATCH] chore(release): 2.0.0 [skip ci] MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit # [2.0.0](https://github.com/claytonbrown/goformation/compare/v1.0.0...v2.0.0) (2020-10-15) ### Bug Fixes * **CI:** fix broken GitHub PR integration ([#185](https://github.com/claytonbrown/goformation/issues/185)) ([d42d00a](https://github.com/claytonbrown/goformation/commit/d42d00a631651fc6648b1113abb30f4c14dc7cb6)) * **CI:** only run semantic-release on push-to-master (not on pull requests) ([#184](https://github.com/claytonbrown/goformation/issues/184)) ([c83945a](https://github.com/claytonbrown/goformation/commit/c83945a582a9ccdda924b47a2831922434830a14)) * **CI:** speed up PR builds by only downloading the cfn spec and regenerating resources on cron schedule (not on every build) ([7ae2a32](https://github.com/claytonbrown/goformation/commit/7ae2a3216aa354781677f28eb453ee12d679ea36)) * **CI:** Update TravisCI configuration based on https://github.com/se… ([#180](https://github.com/claytonbrown/goformation/issues/180)) ([88e1e85](https://github.com/claytonbrown/goformation/commit/88e1e850c0c88855a7dfac787ef0e5c5e4285383)) * **CI:** Update TravisCI configuration for semantic-release to use jobs ([f6c2fee](https://github.com/claytonbrown/goformation/commit/f6c2fee541b934d1411b12213b5ffc1a1817afe1)) * **generator:** update the generation making it easier to fix CF schema errors to generate ([#285](https://github.com/claytonbrown/goformation/issues/285)) ([6751e5b](https://github.com/claytonbrown/goformation/commit/6751e5b6ecbe1daee45171528cb1300efc6fb300)) * **go:** Ran `go mod tidy` ([#233](https://github.com/claytonbrown/goformation/issues/233)) ([7914822](https://github.com/claytonbrown/goformation/commit/79148224a43eb530329dda8a2614ee7ff5111564)) * **intrinsics:** change Fn::Sub to allow AWS pseudo parameters ([#275](https://github.com/claytonbrown/goformation/issues/275)) ([5a48c27](https://github.com/claytonbrown/goformation/commit/5a48c27630b945dcdc33133defd0241f898ccc52)), closes [#274](https://github.com/claytonbrown/goformation/issues/274) [#202](https://github.com/claytonbrown/goformation/issues/202) * **intrinsics:** Join function to allow to use parameters of type `List<>` ([#309](https://github.com/claytonbrown/goformation/issues/309)) ([6cc1cd3](https://github.com/claytonbrown/goformation/commit/6cc1cd329047227674caaf1b546066e3043c6616)) * **parser:** do not break if a non-intrinsic `Condition` statement is found in a YAML template ([#169](https://github.com/claytonbrown/goformation/issues/169)) ([e4671e3](https://github.com/claytonbrown/goformation/commit/e4671e399c13921428aabdec73c7f8a47be396d1)) * **parser:** fix invalid YAML template error for custom tag marshaler ([#177](https://github.com/claytonbrown/goformation/issues/177)) ([035d438](https://github.com/claytonbrown/goformation/commit/035d438a36f8d79ed729d8b690b359964726abda)) * **parser:** Select the correct AWS CloudFormation resource type based on similarity ([#183](https://github.com/claytonbrown/goformation/issues/183)) ([5749b23](https://github.com/claytonbrown/goformation/commit/5749b23d972a80f0a708549e48c2eb399d5ed7fd)) * **parser:** Unmarshalling of resources with polymorphic properties (like S3 events) now works ([#188](https://github.com/claytonbrown/goformation/issues/188)) ([8eff90a](https://github.com/claytonbrown/goformation/commit/8eff90a21734deeb61c97010f63baed6ad04bb73)) * **schema:** Add Change and Update policies to the Unmarshal method ([#288](https://github.com/claytonbrown/goformation/issues/288)) ([989b05f](https://github.com/claytonbrown/goformation/commit/989b05fa78cb9e72f6d59298fb8bb287612f322e)) * **schema:** AWS::Serverless::Api.MethodSettings should be a list ([a1f340a](https://github.com/claytonbrown/goformation/commit/a1f340a07e0ba4f21b8655da2c4d608849278901)), closes [#242](https://github.com/claytonbrown/goformation/issues/242) * **schema:** AWS::Serverless::Function S3 notification filters ([#249](https://github.com/claytonbrown/goformation/issues/249)) ([a50ef92](https://github.com/claytonbrown/goformation/commit/a50ef9291026420ea8a5e74790fc49b8a9c7fd85)), closes [#74](https://github.com/claytonbrown/goformation/issues/74) * **schema:** AWS::Serverless:Api.Cors ([#246](https://github.com/claytonbrown/goformation/issues/246)) ([62fd56a](https://github.com/claytonbrown/goformation/commit/62fd56a62586c65722f99dbd4c8308ab42fcfc1d)), closes [#244](https://github.com/claytonbrown/goformation/issues/244) * **schema:** CloudFormation Updates ([#320](https://github.com/claytonbrown/goformation/issues/320)) ([49879b4](https://github.com/claytonbrown/goformation/commit/49879b45f79dc9880071facd32d76cc4bf0570eb)) * **schema:** fixed incorrect field type for AWS::Serverless::Application.Location ([#167](https://github.com/claytonbrown/goformation/issues/167)) ([3f1817b](https://github.com/claytonbrown/goformation/commit/3f1817be1603c702532504a77309b67a7e99be66)) * **schema:** maps within YAML templates should allow unknown fields/properties ([3b6e359](https://github.com/claytonbrown/goformation/commit/3b6e359876834a9be87a5bc10e91adc6060a08a1)) * **schema:** Ordered cloudformation/all.go file ([#238](https://github.com/claytonbrown/goformation/issues/238)) ([91254f3](https://github.com/claytonbrown/goformation/commit/91254f30925b89db5e79604d812a1ee9279267bd)) * **schema:** version attribute of Function::S3Location in SAM is optional ([#226](https://github.com/claytonbrown/goformation/issues/226)) ([14b754c](https://github.com/claytonbrown/goformation/commit/14b754c069ef0dfa7abd26e235ccb258b3c72f53)), closes [/github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3](https://github.com//github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md/issues/s3) [#87](https://github.com/claytonbrown/goformation/issues/87) * **schema, parser:** change Transform json schema to allow multiple macros ([#268](https://github.com/claytonbrown/goformation/issues/268)) ([072fc74](https://github.com/claytonbrown/goformation/commit/072fc74628c8ee9a603c2e502ac458af916afc07)), closes [#267](https://github.com/claytonbrown/goformation/issues/267) * **spec:** corrected AWS::Serverless::Api.Auth.Authorizers to be of type JSON rather than string ([#164](https://github.com/claytonbrown/goformation/issues/164)) ([4cf1bee](https://github.com/claytonbrown/goformation/commit/4cf1bee97f9355222eff8312e2b4a405562bf4be)) ### Features * **CI:** auto-generate AUTHORS.md file ([b37af7b](https://github.com/claytonbrown/goformation/commit/b37af7b979a6eec4193cfb813b6d4f6bbda29c8f)) * **lib:** Test feature (please ignore) ([1df611a](https://github.com/claytonbrown/goformation/commit/1df611aac8c6efed9d56a82c2bee0507be7d62c3)) * **parser:** Add support for Conditions ([#260](https://github.com/claytonbrown/goformation/issues/260)) ([1b00f17](https://github.com/claytonbrown/goformation/commit/1b00f17a33109023ad8a4471812448dc1d0db776)) * **parser:** Default to parsing as YAML unless the filename ends in .json ([#176](https://github.com/claytonbrown/goformation/issues/176)) ([42e7146](https://github.com/claytonbrown/goformation/commit/42e7146fb3974cd800fb20f332c7c9cd9ad84016)) * **sam:** Add support for `AWS::Serverless::Api.TracingEnabled`, `AWS::Serverless::Function.PermissionsBoundary`, `AWS::Serverless::Function.DynamoEvent.Enabled`, `AWS::Serverless::Function.KinesisEvent.Enabled`, and `AWS::Serverless::Function.SQSEvent.Enabled` ([#191](https://github.com/claytonbrown/goformation/issues/191)) ([38f0187](https://github.com/claytonbrown/goformation/commit/38f0187f4c1c8b74adcc61853505e9dd0ddd9dea)) * **schema:** add CloudFormation parameter type ([#259](https://github.com/claytonbrown/goformation/issues/259)) ([27fe204](https://github.com/claytonbrown/goformation/commit/27fe204f7addb8cb1bd6e977b0f717c04b09364a)) * **schema:** Add new DynamoDBEvent options ([#289](https://github.com/claytonbrown/goformation/issues/289)) ([741228d](https://github.com/claytonbrown/goformation/commit/741228d6923ea10f1d22a901bbddf106d5c71cd7)) * **schema:** Add OpenApiVersion field to serverless Api ([#281](https://github.com/claytonbrown/goformation/issues/281)) ([bccc71b](https://github.com/claytonbrown/goformation/commit/bccc71b90531fb6bba8465b578fc2accc4dc6e34)) * **schema:** Add support for Template Outputs ([#291](https://github.com/claytonbrown/goformation/issues/291)) ([6875c50](https://github.com/claytonbrown/goformation/commit/6875c50d00d8e1af71d9bad5788446b29ab03513)) * **schema:** Add UpdateReplacePolicy to the templates and the policies so that it is generated for every resource ([#272](https://github.com/claytonbrown/goformation/issues/272)) ([696c515](https://github.com/claytonbrown/goformation/commit/696c515bcbb07105683a328ef0e161d62146114b)) * **schema:** Added CloudWatch Logs event for SAM ([#271](https://github.com/claytonbrown/goformation/issues/271)) ([fedb013](https://github.com/claytonbrown/goformation/commit/fedb013e3b19ab1242cf8e3ae28a40240103d9b1)) * **schema:** adding AWS::Serverless::StateMachine and FileSystemConfigs to Function ([#284](https://github.com/claytonbrown/goformation/issues/284)) ([d2d23ca](https://github.com/claytonbrown/goformation/commit/d2d23cafba606a8ea40649cc666073fa0e2d5ad3)) * **schema:** AWS CloudFormation Update (2019-03-15) ([#189](https://github.com/claytonbrown/goformation/issues/189)) ([8b332a4](https://github.com/claytonbrown/goformation/commit/8b332a43dfe784d3c029cb0e9297dab4030ea943)) * **schema:** AWS CloudFormation Update (2019-10-26) ([#231](https://github.com/claytonbrown/goformation/issues/231)) ([63ca311](https://github.com/claytonbrown/goformation/commit/63ca311c03a80b25124f506dafa39d81b5e029f3)) * **schema:** AWS CloudFormation Update (2019-10-29) ([#239](https://github.com/claytonbrown/goformation/issues/239)) ([7ff8499](https://github.com/claytonbrown/goformation/commit/7ff84990c89e11815d22e06d377e110ae422cc17)) * **schema:** CFN Updates ([#287](https://github.com/claytonbrown/goformation/issues/287)) ([9778479](https://github.com/claytonbrown/goformation/commit/97784795e35035b71b946d0ca69ef4d380d3b4a8)) * **schema:** CloudFormation Updates (2019-12-09) ([#251](https://github.com/claytonbrown/goformation/issues/251)) ([a23ba41](https://github.com/claytonbrown/goformation/commit/a23ba416a24649c7296a0bc507c7940d9082ea30)) * **schema:** CloudFormation Updates (2020-01-30) ([#263](https://github.com/claytonbrown/goformation/issues/263)) ([fda2d31](https://github.com/claytonbrown/goformation/commit/fda2d31f384eabbbf432ad1ee77ff8db6d0f2e73)) * **schema:** CloudFormation Updates (2020-02-13) ([#266](https://github.com/claytonbrown/goformation/issues/266)) ([bc75922](https://github.com/claytonbrown/goformation/commit/bc75922eb604d6e43f290912234a644c4d7584b5)) * **schema:** CloudFormation Updates (2020-02-22) ([#269](https://github.com/claytonbrown/goformation/issues/269)) ([ffd88a6](https://github.com/claytonbrown/goformation/commit/ffd88a6a9b0349853517e811169ee66804d79a2e)) * **schema:** dummy commit - trigger CI for schema update ([66bc344](https://github.com/claytonbrown/goformation/commit/66bc344ed6a17a613abbb4d217afcc0b8ea02b48)) * **schema:** regenerated resources to apply SAM schema fixes from previous PR ([b30c019](https://github.com/claytonbrown/goformation/commit/b30c019ec8df7a89e03a6e11a80b4b2056f7096f)) * **schema:** Serverless eventbridgeruleevent ([#279](https://github.com/claytonbrown/goformation/issues/279)) ([2a9e572](https://github.com/claytonbrown/goformation/commit/2a9e572313485023dc4e57cb8facda72a3571307)) * Added semantic-release CI setup ([a9b368a](https://github.com/claytonbrown/goformation/commit/a9b368ae3391788cbb9f5c0282a1cba94fe529f9)) * Added semantic-release configuration file ([3b25fdb](https://github.com/claytonbrown/goformation/commit/3b25fdb72c33bc717a2cef9f708a4ddaf32e6262)) * Fix method conflicts (#245) ([d0b0a8b](https://github.com/claytonbrown/goformation/commit/d0b0a8bc322e27f72e840c9847f3c822d4efa933)), closes [#245](https://github.com/claytonbrown/goformation/issues/245) [#241](https://github.com/claytonbrown/goformation/issues/241) [#294](https://github.com/claytonbrown/goformation/issues/294) * Group CloudFormation resources by AWS service name (#234) ([d0749e6](https://github.com/claytonbrown/goformation/commit/d0749e6a8fc5e7b0ddc301aef0170e12c7dc459c)), closes [#234](https://github.com/claytonbrown/goformation/issues/234) ### Code Refactoring * **generator:** moving resources and policies into their own packages ([#161](https://github.com/claytonbrown/goformation/issues/161)) ([03a0123](https://github.com/claytonbrown/goformation/commit/03a0123fb311f946c628403b6e6b79528a92b912)) ### BREAKING CHANGES * This change refactors the DependsOn, Metadata, CreationPolicy, UpdatePolicy and DeletionPolicy methods on each resource to a new name. This is required, as some CloudFormation resources use these keywords as properties (AWS::AppMesh::Route.GrpcRouteMatch has a Metadata field for example), which causes a conflict. `resource.DependsOn()` method is refactored to `resource.AWSCloudFormationDependsOn` field. `resource.SetDependsOn()` method is refactored to `resource.AWSCloudFormationDependsOn` field. `resource.Metadata()` method is refactored to `resource.AWSCloudFormationMetadata` field. `resource.SetMetadata()` method is refactored to `resource.AWSCloudFormationMetadata` field. `resource.CreationPolicy()` method is refactored to `resource.AWSCloudFormationCreationPolicy` field. `resource.SetCreationPolicy()` method is refactored to `resource.AWSCloudFormationCreationPolicy` field. `resource.UpdatePolicy()` method is refactored to `resource.AWSCloudFormationUpdatePolicy` field. `resource.SetUpdatePolicy()` method is refactored to `resource.AWSCloudFormationUpdatePolicy` field. `resource.DeletionPolicy()` method is refactored to `resource.AWSCloudFormationDeletionPolicy` field. `resource.SetDeletionPolicy()` method is refactored to `resource.AWSCloudFormationDeletionPolicy` field. * this change moves all Cloudformation resources to packages based on the AWS service name. The main motivation for this is that building goformation on some platforms (Windows) failed due to too many files in the old cloudformation/resources package. This new package style has a nice benefit of slightly nicer to use API, but is a breaking change and will require refactoring existing codebases to update to v3. Old usage: ```go import "github.com/awslabs/goformation/v2/cloudformation/resources" ... snip ... topic := &resources.AWSSNSTopic{} ``` New usage: ```go import "github.com/awslabs/goformation/v3/cloudformation/sns" ...snip... topic := &sns.Topic{} ``` Most tests are still failing at this point and need refactoring. * fix(schema): Tag handling Fixed tag handling for new grouped resources style (via new tags.Tag struct). * fix(schema): SAM specification SAM Specification now generates nicely with new grouped resources format. Also all tests are now passing \o/ * **generator:** this PR refactors the auto-generated CloudFormation resources out of the cloudformation package and into a dedicated package (resources). This helps keep the auto generated files separate from others. E.g. cloudformation.AWSSnsTopic{} becomes resources.AWSSnsTopic{} --- CHANGELOG.md | 129 +++++++++++++++++++++++++++++++++++++++++++++++++++ 1 file changed, 129 insertions(+) diff --git a/CHANGELOG.md b/CHANGELOG.md index 66615d0d51..9c22bb487a 100644 --- a/CHANGELOG.md +++ b/CHANGELOG.md @@ -1,5 +1,134 @@ # GoFormation Versioning Changelog +# [2.0.0](https://github.com/claytonbrown/goformation/compare/v1.0.0...v2.0.0) (2020-10-15) + + +### Bug Fixes + +* **CI:** fix broken GitHub PR integration ([#185](https://github.com/claytonbrown/goformation/issues/185)) ([d42d00a](https://github.com/claytonbrown/goformation/commit/d42d00a631651fc6648b1113abb30f4c14dc7cb6)) +* **CI:** only run semantic-release on push-to-master (not on pull requests) ([#184](https://github.com/claytonbrown/goformation/issues/184)) ([c83945a](https://github.com/claytonbrown/goformation/commit/c83945a582a9ccdda924b47a2831922434830a14)) +* **CI:** speed up PR builds by only downloading the cfn spec and regenerating resources on cron schedule (not on every build) ([7ae2a32](https://github.com/claytonbrown/goformation/commit/7ae2a3216aa354781677f28eb453ee12d679ea36)) +* **CI:** Update TravisCI configuration based on https://github.com/se… ([#180](https://github.com/claytonbrown/goformation/issues/180)) ([88e1e85](https://github.com/claytonbrown/goformation/commit/88e1e850c0c88855a7dfac787ef0e5c5e4285383)) +* **CI:** Update TravisCI configuration for semantic-release to use jobs ([f6c2fee](https://github.com/claytonbrown/goformation/commit/f6c2fee541b934d1411b12213b5ffc1a1817afe1)) +* **generator:** update the generation making it easier to fix CF schema errors to generate ([#285](https://github.com/claytonbrown/goformation/issues/285)) ([6751e5b](https://github.com/claytonbrown/goformation/commit/6751e5b6ecbe1daee45171528cb1300efc6fb300)) +* **go:** Ran `go mod tidy` ([#233](https://github.com/claytonbrown/goformation/issues/233)) ([7914822](https://github.com/claytonbrown/goformation/commit/79148224a43eb530329dda8a2614ee7ff5111564)) +* **intrinsics:** change Fn::Sub to allow AWS pseudo parameters ([#275](https://github.com/claytonbrown/goformation/issues/275)) ([5a48c27](https://github.com/claytonbrown/goformation/commit/5a48c27630b945dcdc33133defd0241f898ccc52)), closes [#274](https://github.com/claytonbrown/goformation/issues/274) [#202](https://github.com/claytonbrown/goformation/issues/202) +* **intrinsics:** Join function to allow to use parameters of type `List<>` ([#309](https://github.com/claytonbrown/goformation/issues/309)) ([6cc1cd3](https://github.com/claytonbrown/goformation/commit/6cc1cd329047227674caaf1b546066e3043c6616)) +* **parser:** do not break if a non-intrinsic `Condition` statement is found in a YAML template ([#169](https://github.com/claytonbrown/goformation/issues/169)) ([e4671e3](https://github.com/claytonbrown/goformation/commit/e4671e399c13921428aabdec73c7f8a47be396d1)) +* **parser:** fix invalid YAML template error for custom tag marshaler ([#177](https://github.com/claytonbrown/goformation/issues/177)) ([035d438](https://github.com/claytonbrown/goformation/commit/035d438a36f8d79ed729d8b690b359964726abda)) +* **parser:** Select the correct AWS CloudFormation resource type based on similarity ([#183](https://github.com/claytonbrown/goformation/issues/183)) ([5749b23](https://github.com/claytonbrown/goformation/commit/5749b23d972a80f0a708549e48c2eb399d5ed7fd)) +* **parser:** Unmarshalling of resources with polymorphic properties (like S3 events) now works ([#188](https://github.com/claytonbrown/goformation/issues/188)) ([8eff90a](https://github.com/claytonbrown/goformation/commit/8eff90a21734deeb61c97010f63baed6ad04bb73)) +* **schema:** Add Change and Update policies to the Unmarshal method ([#288](https://github.com/claytonbrown/goformation/issues/288)) ([989b05f](https://github.com/claytonbrown/goformation/commit/989b05fa78cb9e72f6d59298fb8bb287612f322e)) +* **schema:** AWS::Serverless::Api.MethodSettings should be a list ([a1f340a](https://github.com/claytonbrown/goformation/commit/a1f340a07e0ba4f21b8655da2c4d608849278901)), closes [#242](https://github.com/claytonbrown/goformation/issues/242) +* **schema:** AWS::Serverless::Function S3 notification filters ([#249](https://github.com/claytonbrown/goformation/issues/249)) ([a50ef92](https://github.com/claytonbrown/goformation/commit/a50ef9291026420ea8a5e74790fc49b8a9c7fd85)), closes [#74](https://github.com/claytonbrown/goformation/issues/74) +* **schema:** AWS::Serverless:Api.Cors ([#246](https://github.com/claytonbrown/goformation/issues/246)) ([62fd56a](https://github.com/claytonbrown/goformation/commit/62fd56a62586c65722f99dbd4c8308ab42fcfc1d)), closes [#244](https://github.com/claytonbrown/goformation/issues/244) +* **schema:** CloudFormation Updates ([#320](https://github.com/claytonbrown/goformation/issues/320)) ([49879b4](https://github.com/claytonbrown/goformation/commit/49879b45f79dc9880071facd32d76cc4bf0570eb)) +* **schema:** fixed incorrect field type for AWS::Serverless::Application.Location ([#167](https://github.com/claytonbrown/goformation/issues/167)) ([3f1817b](https://github.com/claytonbrown/goformation/commit/3f1817be1603c702532504a77309b67a7e99be66)) +* **schema:** maps within YAML templates should allow unknown fields/properties ([3b6e359](https://github.com/claytonbrown/goformation/commit/3b6e359876834a9be87a5bc10e91adc6060a08a1)) +* **schema:** Ordered cloudformation/all.go file ([#238](https://github.com/claytonbrown/goformation/issues/238)) ([91254f3](https://github.com/claytonbrown/goformation/commit/91254f30925b89db5e79604d812a1ee9279267bd)) +* **schema:** version attribute of Function::S3Location in SAM is optional ([#226](https://github.com/claytonbrown/goformation/issues/226)) ([14b754c](https://github.com/claytonbrown/goformation/commit/14b754c069ef0dfa7abd26e235ccb258b3c72f53)), closes [/github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md#s3](https://github.com//github.com/awslabs/serverless-application-model/blob/master/versions/2016-10-31.md/issues/s3) [#87](https://github.com/claytonbrown/goformation/issues/87) +* **schema, parser:** change Transform json schema to allow multiple macros ([#268](https://github.com/claytonbrown/goformation/issues/268)) ([072fc74](https://github.com/claytonbrown/goformation/commit/072fc74628c8ee9a603c2e502ac458af916afc07)), closes [#267](https://github.com/claytonbrown/goformation/issues/267) +* **spec:** corrected AWS::Serverless::Api.Auth.Authorizers to be of type JSON rather than string ([#164](https://github.com/claytonbrown/goformation/issues/164)) ([4cf1bee](https://github.com/claytonbrown/goformation/commit/4cf1bee97f9355222eff8312e2b4a405562bf4be)) + + +### Features + +* **CI:** auto-generate AUTHORS.md file ([b37af7b](https://github.com/claytonbrown/goformation/commit/b37af7b979a6eec4193cfb813b6d4f6bbda29c8f)) +* **lib:** Test feature (please ignore) ([1df611a](https://github.com/claytonbrown/goformation/commit/1df611aac8c6efed9d56a82c2bee0507be7d62c3)) +* **parser:** Add support for Conditions ([#260](https://github.com/claytonbrown/goformation/issues/260)) ([1b00f17](https://github.com/claytonbrown/goformation/commit/1b00f17a33109023ad8a4471812448dc1d0db776)) +* **parser:** Default to parsing as YAML unless the filename ends in .json ([#176](https://github.com/claytonbrown/goformation/issues/176)) ([42e7146](https://github.com/claytonbrown/goformation/commit/42e7146fb3974cd800fb20f332c7c9cd9ad84016)) +* **sam:** Add support for `AWS::Serverless::Api.TracingEnabled`, `AWS::Serverless::Function.PermissionsBoundary`, `AWS::Serverless::Function.DynamoEvent.Enabled`, `AWS::Serverless::Function.KinesisEvent.Enabled`, and `AWS::Serverless::Function.SQSEvent.Enabled` ([#191](https://github.com/claytonbrown/goformation/issues/191)) ([38f0187](https://github.com/claytonbrown/goformation/commit/38f0187f4c1c8b74adcc61853505e9dd0ddd9dea)) +* **schema:** add CloudFormation parameter type ([#259](https://github.com/claytonbrown/goformation/issues/259)) ([27fe204](https://github.com/claytonbrown/goformation/commit/27fe204f7addb8cb1bd6e977b0f717c04b09364a)) +* **schema:** Add new DynamoDBEvent options ([#289](https://github.com/claytonbrown/goformation/issues/289)) ([741228d](https://github.com/claytonbrown/goformation/commit/741228d6923ea10f1d22a901bbddf106d5c71cd7)) +* **schema:** Add OpenApiVersion field to serverless Api ([#281](https://github.com/claytonbrown/goformation/issues/281)) ([bccc71b](https://github.com/claytonbrown/goformation/commit/bccc71b90531fb6bba8465b578fc2accc4dc6e34)) +* **schema:** Add support for Template Outputs ([#291](https://github.com/claytonbrown/goformation/issues/291)) ([6875c50](https://github.com/claytonbrown/goformation/commit/6875c50d00d8e1af71d9bad5788446b29ab03513)) +* **schema:** Add UpdateReplacePolicy to the templates and the policies so that it is generated for every resource ([#272](https://github.com/claytonbrown/goformation/issues/272)) ([696c515](https://github.com/claytonbrown/goformation/commit/696c515bcbb07105683a328ef0e161d62146114b)) +* **schema:** Added CloudWatch Logs event for SAM ([#271](https://github.com/claytonbrown/goformation/issues/271)) ([fedb013](https://github.com/claytonbrown/goformation/commit/fedb013e3b19ab1242cf8e3ae28a40240103d9b1)) +* **schema:** adding AWS::Serverless::StateMachine and FileSystemConfigs to Function ([#284](https://github.com/claytonbrown/goformation/issues/284)) ([d2d23ca](https://github.com/claytonbrown/goformation/commit/d2d23cafba606a8ea40649cc666073fa0e2d5ad3)) +* **schema:** AWS CloudFormation Update (2019-03-15) ([#189](https://github.com/claytonbrown/goformation/issues/189)) ([8b332a4](https://github.com/claytonbrown/goformation/commit/8b332a43dfe784d3c029cb0e9297dab4030ea943)) +* **schema:** AWS CloudFormation Update (2019-10-26) ([#231](https://github.com/claytonbrown/goformation/issues/231)) ([63ca311](https://github.com/claytonbrown/goformation/commit/63ca311c03a80b25124f506dafa39d81b5e029f3)) +* **schema:** AWS CloudFormation Update (2019-10-29) ([#239](https://github.com/claytonbrown/goformation/issues/239)) ([7ff8499](https://github.com/claytonbrown/goformation/commit/7ff84990c89e11815d22e06d377e110ae422cc17)) +* **schema:** CFN Updates ([#287](https://github.com/claytonbrown/goformation/issues/287)) ([9778479](https://github.com/claytonbrown/goformation/commit/97784795e35035b71b946d0ca69ef4d380d3b4a8)) +* **schema:** CloudFormation Updates (2019-12-09) ([#251](https://github.com/claytonbrown/goformation/issues/251)) ([a23ba41](https://github.com/claytonbrown/goformation/commit/a23ba416a24649c7296a0bc507c7940d9082ea30)) +* **schema:** CloudFormation Updates (2020-01-30) ([#263](https://github.com/claytonbrown/goformation/issues/263)) ([fda2d31](https://github.com/claytonbrown/goformation/commit/fda2d31f384eabbbf432ad1ee77ff8db6d0f2e73)) +* **schema:** CloudFormation Updates (2020-02-13) ([#266](https://github.com/claytonbrown/goformation/issues/266)) ([bc75922](https://github.com/claytonbrown/goformation/commit/bc75922eb604d6e43f290912234a644c4d7584b5)) +* **schema:** CloudFormation Updates (2020-02-22) ([#269](https://github.com/claytonbrown/goformation/issues/269)) ([ffd88a6](https://github.com/claytonbrown/goformation/commit/ffd88a6a9b0349853517e811169ee66804d79a2e)) +* **schema:** dummy commit - trigger CI for schema update ([66bc344](https://github.com/claytonbrown/goformation/commit/66bc344ed6a17a613abbb4d217afcc0b8ea02b48)) +* **schema:** regenerated resources to apply SAM schema fixes from previous PR ([b30c019](https://github.com/claytonbrown/goformation/commit/b30c019ec8df7a89e03a6e11a80b4b2056f7096f)) +* **schema:** Serverless eventbridgeruleevent ([#279](https://github.com/claytonbrown/goformation/issues/279)) ([2a9e572](https://github.com/claytonbrown/goformation/commit/2a9e572313485023dc4e57cb8facda72a3571307)) +* Added semantic-release CI setup ([a9b368a](https://github.com/claytonbrown/goformation/commit/a9b368ae3391788cbb9f5c0282a1cba94fe529f9)) +* Added semantic-release configuration file ([3b25fdb](https://github.com/claytonbrown/goformation/commit/3b25fdb72c33bc717a2cef9f708a4ddaf32e6262)) + + +* Fix method conflicts (#245) ([d0b0a8b](https://github.com/claytonbrown/goformation/commit/d0b0a8bc322e27f72e840c9847f3c822d4efa933)), closes [#245](https://github.com/claytonbrown/goformation/issues/245) [#241](https://github.com/claytonbrown/goformation/issues/241) [#294](https://github.com/claytonbrown/goformation/issues/294) +* Group CloudFormation resources by AWS service name (#234) ([d0749e6](https://github.com/claytonbrown/goformation/commit/d0749e6a8fc5e7b0ddc301aef0170e12c7dc459c)), closes [#234](https://github.com/claytonbrown/goformation/issues/234) + + +### Code Refactoring + +* **generator:** moving resources and policies into their own packages ([#161](https://github.com/claytonbrown/goformation/issues/161)) ([03a0123](https://github.com/claytonbrown/goformation/commit/03a0123fb311f946c628403b6e6b79528a92b912)) + + +### BREAKING CHANGES + +* This change refactors the DependsOn, Metadata, CreationPolicy, +UpdatePolicy and DeletionPolicy methods on each resource to a new +name. This is required, as some CloudFormation resources use these +keywords as properties (AWS::AppMesh::Route.GrpcRouteMatch has a +Metadata field for example), which causes a conflict. + +`resource.DependsOn()` method is refactored to `resource.AWSCloudFormationDependsOn` field. +`resource.SetDependsOn()` method is refactored to `resource.AWSCloudFormationDependsOn` field. +`resource.Metadata()` method is refactored to `resource.AWSCloudFormationMetadata` field. +`resource.SetMetadata()` method is refactored to `resource.AWSCloudFormationMetadata` field. +`resource.CreationPolicy()` method is refactored to `resource.AWSCloudFormationCreationPolicy` field. +`resource.SetCreationPolicy()` method is refactored to `resource.AWSCloudFormationCreationPolicy` field. +`resource.UpdatePolicy()` method is refactored to `resource.AWSCloudFormationUpdatePolicy` field. +`resource.SetUpdatePolicy()` method is refactored to `resource.AWSCloudFormationUpdatePolicy` field. +`resource.DeletionPolicy()` method is refactored to `resource.AWSCloudFormationDeletionPolicy` field. +`resource.SetDeletionPolicy()` method is refactored to `resource.AWSCloudFormationDeletionPolicy` field. +* this change moves all Cloudformation resources to +packages based on the AWS service name. The main motivation for this is +that building goformation on some platforms (Windows) failed due to too +many files in the old cloudformation/resources package. This new package +style has a nice benefit of slightly nicer to use API, but is a breaking +change and will require refactoring existing codebases to update to v3. + +Old usage: + +```go +import "github.com/awslabs/goformation/v2/cloudformation/resources" + +... snip ... + +topic := &resources.AWSSNSTopic{} +``` + +New usage: + +```go +import "github.com/awslabs/goformation/v3/cloudformation/sns" + +...snip... + +topic := &sns.Topic{} +``` + +Most tests are still failing at this point and need refactoring. + +* fix(schema): Tag handling + +Fixed tag handling for new grouped resources style (via new tags.Tag +struct). + +* fix(schema): SAM specification + +SAM Specification now generates nicely with new grouped resources +format. Also all tests are now passing \o/ +* **generator:** this PR refactors the auto-generated CloudFormation resources out of the cloudformation package and into a dedicated package (resources). This helps keep the auto generated files separate from others. + +E.g. cloudformation.AWSSnsTopic{} becomes resources.AWSSnsTopic{} + ## [4.15.2](https://github.com/awslabs/goformation/compare/v4.15.1...v4.15.2) (2020-10-11)